<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:AR="http://autosar.org/4.0.0.DAI.1" targetNamespace="http://autosar.org/4.0.0.DAI.1" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <!--
Daimler specific AUTOSAR Schema Definition: 4.0.0.DAI.1
========== 2008-12-19
Fixed AR-PACKAGE.SUB-PACKAGES according to Bug#29534.
====================
Daimler specific AUTOSAR Schema Definition: 4.0.0.DAI.0
========== 2008-10-29
Manually edited definition of "N-PDU..SUBTYPES-ENUM"
==========
- Generated using MMT v 1.2.2 - revision: 32215
https://svn2.autosar.org/repos2/40_MetaModelTool/trunk/02_MMT_Runtime/mmt_1.2.2.zip

- MetaModel - revision: 33384
https://svn2.autosar.org/repos2/09_WorkPackages/15_WPII-1.2/trunk/02_Documents/059_MetaModel/AUTOSAR_MetaModel_Master.EAP

Robert Sakretz
Daimler AG
Group Research and MCG Development / Architecture and Standardization
HPC 050/G007
D-71059 Sindelfingen

Phone +49 (0) 7031-4389-319
Fax +49 (0) 711-3052 114 25 2
mailto:robert.sakretz@daimler.com
-->
  <!--
AUTOSAR Schema Definition
-->
  <!--
Disclaimer

This document of a specification as released by the AUTOSAR Development Partnership is intended for the purpose of information only. The commercial exploitation of material contained in this specification requires membership of the AUTOSAR Development Partnership or an agreement with the AUTOSAR Development Partnership. The AUTOSAR Development Partnership will not be liable for any use of this specification. Following the completion of the development of the AUTOSAR specifications commercial exploitation licenses will be made available to end users by way of written License Agreement only.
No part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm, without per-mission in writing from the publisher." The word AUTOSAR and the AUTOSAR logo are registered trademarks.

Copyright © 2004-2008 AUTOSAR Development Partnership. All rights reserved.



Advice to users of AUTOSAR Specification Documents: 

AUTOSAR Specification Documents may contain exemplary items (exemplary reference models, "use cases", and/or references to exemplary technical solutions, devices, processes or software).
Any such exemplary items are contained in the Specification Documents for illustration purposes only, and they themselves are not part of the AUTOSAR Standard. Neither their presence in such Specification Documents, nor any later documentation of AUTOSAR conformance of products actually implementing such exemplary items, imply that intellectual property rights covering such exemplary items are licensed under the same rules as applicable to the AUTOSAR Standard.
-->
  <!-- $Id: $ -->
  <!-- element group for class Peripherals::ADC -->
  <xsd:group name="ADC">
    <xsd:annotation>
      <xsd:documentation>An ADC converts an analogue signal at an input pin to a digital value. The analogue signal are quantified to a maximum number of different levels defined by the resolution of the ADC. The Accuracy of the ADC is important for the overall functionality.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BEHAVIOUR-AT-LIMIT" type="AR:ADC-BEHAVIOUR-AT-LIMIT-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the action that is going to be performed when a limit is reached.
- Clipping: Logical value is limited to minimal or maximal range of the value range. E.g. The max. resolution of an ADC is at 5V represented 0xFF; in case off clipping a voltage of 6V is also represented as 0xFF;
- Undefined: Exceeding the resolution results in an undefined representation of the logical value. 
- Default: Exceeding the resolution results in a predefined default value. The default value might be a value, which report the status to the application e.g. as an error condition. 
- Other: A predefined function occur in order to prevent a undefined logical value. A typical application is a "Soft-Clipping" in a logarithmic form at the limit of the resolutions in audio applications.  The according methods have to be specified in the signal description.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::ADC -->
  <xsd:complexType name="ADC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An ADC converts an analogue signal at an input pin to a digital value. The analogue signal are quantified to a maximum number of different levels defined by the resolution of the ADC. The Accuracy of the ADC is important for the overall functionality.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:ANALOGUE-IO"/>
      <xsd:group ref="AR:ADC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class AutosarTopLevelStructure::ARElement -->
  <xsd:group name="AR-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>An element that can be defined stand-alone, i.e. without being part of another element (except for packages of course).

Opposed to packages, the elements are closed sets, i.e. that in a file based description, one ARElement needs to be described completely and cannot be extended or completed by another file.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class AutosarTopLevelStructure::ARObject -->
  <xsd:group name="AR-OBJECT">
    <xsd:annotation>
      <xsd:documentation>Implicit base class of all classes in metamodel.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class AutosarTopLevelStructure::ARObject -->
  <xsd:attributeGroup name="AR-OBJECT">
    <xsd:annotation>
      <xsd:documentation>Implicit base class of all classes in metamodel.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="S" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>checksum calculated from the 
* attributes
* aggregations and aggregated non-identifiables
* references</xsd:documentation>
        <xsd:appinfo source="tags">xml.attribute="true";xml.name="S"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="T" type="xsd:dateTime">
      <xsd:annotation>
        <xsd:documentation>the timestamp of the creation or modification of an instance, its attributes, references or aggregated non-identifiables.</xsd:documentation>
        <xsd:appinfo source="tags">xml.attribute="true";xml.name="T"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- element group for class AutosarTopLevelStructure::ARPackage -->
  <xsd:group name="AR-PACKAGE">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR package, allowing to create top level packages to structure the contained ARElements.

ARPackages are open sets, which means that in a file based description system, multiple files can be used to partially describe the contents of a package.

This is an extended version of MSR's SW-SYSTEM.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ADC" type="AR:ADC"/>
            <xsd:element name="ACTUATOR-HW" type="AR:ACTUATOR-HW"/>
            <xsd:element name="APPLICATION-ARRAY-DATA-TYPE" type="AR:APPLICATION-ARRAY-DATA-TYPE"/>
            <xsd:element name="APPLICATION-PRIMITIVE-DATA-TYPE" type="AR:APPLICATION-PRIMITIVE-DATA-TYPE"/>
            <xsd:element name="APPLICATION-RECORD-DATA-TYPE" type="AR:APPLICATION-RECORD-DATA-TYPE"/>
            <xsd:element name="APPLICATION-SOFTWARE-COMPONENT-TYPE" type="AR:APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
            <xsd:element name="BSW-IMPLEMENTATION" type="AR:BSW-IMPLEMENTATION"/>
            <xsd:element name="BSW-INTERNAL-BEHAVIOR" type="AR:BSW-INTERNAL-BEHAVIOR"/>
            <xsd:element name="BSW-MODULE-DESCRIPTION" type="AR:BSW-MODULE-DESCRIPTION"/>
            <xsd:element name="BSW-MODULE-ENTRY" type="AR:BSW-MODULE-ENTRY"/>
            <xsd:element name="BSW-MODULE-TIMING" type="AR:BSW-MODULE-TIMING"/>
            <xsd:element name="CCU" type="AR:CCU"/>
            <xsd:element name="CAN-CLUSTER" type="AR:CAN-CLUSTER"/>
            <xsd:element name="CAN-TP-CONFIG" type="AR:CAN-TP-CONFIG"/>
            <xsd:element name="CERTIFIED-SYSTEMCONST-VALUE-SET" type="AR:CERTIFIED-SYSTEMCONST-VALUE-SET"/>
            <xsd:element name="CLIENT-SERVER-INTERFACE" type="AR:CLIENT-SERVER-INTERFACE"/>
            <xsd:element name="CLOCK" type="AR:CLOCK"/>
            <xsd:element name="COLLECTION" type="AR:COLLECTION"/>
            <xsd:element name="COMMUNICATION-CLUSTER" type="AR:COMMUNICATION-CLUSTER"/>
            <xsd:element name="COMMUNICATION-PERIPHERAL" type="AR:COMMUNICATION-PERIPHERAL"/>
            <xsd:element name="COMMUNICATION-TRANSCEIVER" type="AR:COMMUNICATION-TRANSCEIVER"/>
            <xsd:element name="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE" type="AR:COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
            <xsd:element name="COMPOSITION-COMPONENT-TYPE" type="AR:COMPOSITION-COMPONENT-TYPE"/>
            <xsd:element name="COMPU-METHOD" type="AR:COMPU-METHOD"/>
            <xsd:element name="CONSTANT-SPECIFICATION" type="AR:CONSTANT-SPECIFICATION"/>
            <xsd:element name="DAC" type="AR:DAC"/>
            <xsd:element name="DATA-CONSTR" type="AR:DATA-CONSTR"/>
            <xsd:element name="DATA-N-PDU" type="AR:DATA-N-PDU"/>
            <xsd:element name="DATA-TYPE-MAPPING-SET" type="AR:DATA-TYPE-MAPPING-SET"/>
            <xsd:element name="DCM-I-PDU" type="AR:DCM-I-PDU"/>
            <xsd:element name="DIGITAL-IO" type="AR:DIGITAL-IO"/>
            <xsd:element name="DISCRETE-ECU-ELECTRONICS" type="AR:DISCRETE-ECU-ELECTRONICS"/>
            <xsd:element name="DISPLAY-HW" type="AR:DISPLAY-HW"/>
            <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION"/>
            <xsd:element name="ECU" type="AR:ECU"/>
            <xsd:element name="ECU-ABSTRACTION-COMPONENT-TYPE" type="AR:ECU-ABSTRACTION-COMPONENT-TYPE"/>
            <xsd:element name="ECU-CONFIGURATION" type="AR:ECU-CONFIGURATION"/>
            <xsd:element name="ECU-INSTANCE" type="AR:ECU-INSTANCE"/>
            <xsd:element name="ECU-PARAMETER-DEFINITION" type="AR:ECU-PARAMETER-DEFINITION"/>
            <xsd:element name="ECU-TIMING" type="AR:ECU-TIMING"/>
            <xsd:element name="ETHERNET-COMMUNICATION-CLUSTER" type="AR:ETHERNET-COMMUNICATION-CLUSTER"/>
            <xsd:element name="FLAT-MAP" type="AR:FLAT-MAP"/>
            <xsd:element name="FLEXRAY-CLUSTER" type="AR:FLEXRAY-CLUSTER"/>
            <xsd:element name="FLEXRAY-TP-CONFIG" type="AR:FLEXRAY-TP-CONFIG"/>
            <xsd:element name="FLOW-CONTROL-N-PDU" type="AR:FLOW-CONTROL-N-PDU"/>
            <xsd:element name="FRAME" type="AR:FRAME"/>
            <xsd:element name="GATEWAY" type="AR:GATEWAY"/>
            <xsd:element name="HW-CONTAINER" type="AR:HW-CONTAINER"/>
            <xsd:element name="I-PDU-GROUP" type="AR:I-PDU-GROUP"/>
            <xsd:element name="I-SIGNAL" type="AR:I-SIGNAL"/>
            <xsd:element name="IMPLEMENTATION-DATA-TYPE" type="AR:IMPLEMENTATION-DATA-TYPE"/>
            <xsd:element name="J-1939-TP-CONFIG" type="AR:J-1939-TP-CONFIG"/>
            <xsd:element name="LIN-CLUSTER" type="AR:LIN-CLUSTER"/>
            <xsd:element name="LIN-EVENT-TRIGGERED-FRAME" type="AR:LIN-EVENT-TRIGGERED-FRAME"/>
            <xsd:element name="LIN-SPORADIC-FRAME" type="AR:LIN-SPORADIC-FRAME"/>
            <xsd:element name="LIN-TP-CONFIG" type="AR:LIN-TP-CONFIG"/>
            <xsd:element name="LIN-UNCONDITIONAL-FRAME" type="AR:LIN-UNCONDITIONAL-FRAME"/>
            <xsd:element name="MODE-DECLARATION-GROUP" type="AR:MODE-DECLARATION-GROUP"/>
            <xsd:element name="MODE-INTERFACE" type="AR:MODE-INTERFACE"/>
            <xsd:element name="MODULE-CONFIGURATION" type="AR:MODULE-CONFIGURATION"/>
            <xsd:element name="MODULE-DEF" type="AR:MODULE-DEF"/>
            <xsd:element name="MULTIPLEXED-I-PDU" type="AR:MULTIPLEXED-I-PDU"/>
            <xsd:element name="NM-CONFIG" type="AR:NM-CONFIG"/>
            <xsd:element name="NM-PDU" type="AR:NM-PDU"/>
            <xsd:element name="NV-BLOCK-COMPONENT-TYPE" type="AR:NV-BLOCK-COMPONENT-TYPE"/>
            <xsd:element name="NV-BLOCK-DESCRIPTOR" type="AR:NV-BLOCK-DESCRIPTOR"/>
            <xsd:element name="NV-DATA-INTERFACE" type="AR:NV-DATA-INTERFACE"/>
            <xsd:element name="OSCILLATOR" type="AR:OSCILLATOR"/>
            <xsd:element name="PWD" type="AR:PWD"/>
            <xsd:element name="PWM" type="AR:PWM"/>
            <xsd:element name="PARAMETER-COMPONENT-TYPE" type="AR:PARAMETER-COMPONENT-TYPE"/>
            <xsd:element name="PARAMETER-INTERFACE" type="AR:PARAMETER-INTERFACE"/>
            <xsd:element name="PERIPHERAL" type="AR:PERIPHERAL"/>
            <xsd:element name="PHYSICAL-DIMENSION" type="AR:PHYSICAL-DIMENSION"/>
            <xsd:element name="PORT-INTERFACE-MAPPING-GROUP" type="AR:PORT-INTERFACE-MAPPING-GROUP"/>
            <xsd:element name="POST-BUILD-VARIANT-CRITERION" type="AR:POST-BUILD-VARIANT-CRITERION"/>
            <xsd:element name="POWER-DRIVER-HW-ELEMENT" type="AR:POWER-DRIVER-HW-ELEMENT"/>
            <xsd:element name="POWER-SUPPLY-HW-ELEMENT" type="AR:POWER-SUPPLY-HW-ELEMENT"/>
            <xsd:element name="PROCESSING-UNIT" type="AR:PROCESSING-UNIT"/>
            <xsd:element name="PROVIDED-MEMORY-SEGMENT" type="AR:PROVIDED-MEMORY-SEGMENT"/>
            <xsd:element name="PROVIDED-NV-MEMORY-SEGMENT" type="AR:PROVIDED-NV-MEMORY-SEGMENT"/>
            <xsd:element name="SENDER-RECEIVER-INTERFACE" type="AR:SENDER-RECEIVER-INTERFACE"/>
            <xsd:element name="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE" type="AR:SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
            <xsd:element name="SENSOR-HW" type="AR:SENSOR-HW"/>
            <xsd:element name="SERVICE-COMPONENT-TYPE" type="AR:SERVICE-COMPONENT-TYPE"/>
            <xsd:element name="SIGNAL-I-PDU" type="AR:SIGNAL-I-PDU"/>
            <xsd:element name="SOFTWARE-COMPONENT-DOCUMENTATION" type="AR:SOFTWARE-COMPONENT-DOCUMENTATION"/>
            <xsd:element name="SW-ADDR-METHOD" type="AR:SW-ADDR-METHOD"/>
            <xsd:element name="SW-AXIS-TYPE" type="AR:SW-AXIS-TYPE"/>
            <xsd:element name="SW-BASE-TYPE" type="AR:SW-BASE-TYPE"/>
            <xsd:element name="SW-CLASS-INSTANCE" type="AR:SW-CLASS-INSTANCE"/>
            <xsd:element name="SW-CODE-SYNTAX" type="AR:SW-CODE-SYNTAX"/>
            <xsd:element name="SW-RECORD-LAYOUT" type="AR:SW-RECORD-LAYOUT"/>
            <xsd:element name="SW-SERVICE" type="AR:SW-SERVICE"/>
            <xsd:element name="SW-SYSTEMCONST" type="AR:SW-SYSTEMCONST"/>
            <xsd:element name="SW-SYSTEMCONSTANT-VALUE-SET" type="AR:SW-SYSTEMCONSTANT-VALUE-SET"/>
            <xsd:element name="SWC-IMPLEMENTATION" type="AR:SWC-IMPLEMENTATION"/>
            <xsd:element name="SWC-INTERNAL-BEHAVIOR" type="AR:SWC-INTERNAL-BEHAVIOR"/>
            <xsd:element name="SWC-TIMING" type="AR:SWC-TIMING"/>
            <xsd:element name="SYSTEM" type="AR:SYSTEM"/>
            <xsd:element name="SYSTEM-SIGNAL" type="AR:SYSTEM-SIGNAL"/>
            <xsd:element name="SYSTEM-SIGNAL-GROUP" type="AR:SYSTEM-SIGNAL-GROUP"/>
            <xsd:element name="SYSTEM-TIMING" type="AR:SYSTEM-TIMING"/>
            <xsd:element name="TIMER" type="AR:TIMER"/>
            <xsd:element name="TRIGGER-INTERFACE" type="AR:TRIGGER-INTERFACE"/>
            <xsd:element name="TTCAN-CLUSTER" type="AR:TTCAN-CLUSTER"/>
            <xsd:element name="UNIT" type="AR:UNIT"/>
            <xsd:element name="VFB-TIMING" type="AR:VFB-TIMING"/>
            <xsd:element name="WATCH-DOG" type="AR:WATCH-DOG"/>
            <xsd:element name="XCP-PDU" type="AR:XCP-PDU"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <!-- Start Daimler change: 4.0.0.DAI.1 -->
      <xsd:element name="SUB-PACKAGES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="AR-PACKAGE" type="AR:AR-PACKAGE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <!-- End Daimler change: 4.0.0.DAI.1 -->
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AutosarTopLevelStructure::ARPackage -->
  <xsd:complexType name="AR-PACKAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR package, allowing to create top level packages to structure the contained ARElements.

ARPackages are open sets, which means that in a file based description system, multiple files can be used to partially describe the contents of a package.

This is an extended version of MSR's SW-SYSTEM.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:AR-PACKAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class AutosarTopLevelStructure::AUTOSAR -->
  <xsd:group name="AUTOSAR">
    <xsd:annotation>
      <xsd:documentation>Root element of an AUTOSAR description, also the root element in corresponding XML documents.</xsd:documentation>
      <xsd:appinfo source="tags">admin.documentClassification="Auxiliary";admin.documentIdentificationNo="059";admin.documentOwner="AUTOSAR GbR";admin.documentResponsibility="AUTOSAR GbR";admin.documentStatus="Final";admin.documentTitle="Metamodel";admin.documentVersion="3.1.0";admin.namespaceVersion="3.1.0";admin.partOfRelease="3.1";admin.revision="0001";xml.globalElement="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ADMIN-DATA" type="AR:ADMIN-DATA" minOccurs="0"/>
      <xsd:element name="TOP-LEVEL-PACKAGES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="AR-PACKAGE" type="AR:AR-PACKAGE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AutosarTopLevelStructure::AUTOSAR -->
  <xsd:complexType name="AUTOSAR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Root element of an AUTOSAR description, also the root element in corresponding XML documents.</xsd:documentation>
      <xsd:appinfo source="tags">admin.documentClassification="Auxiliary";admin.documentIdentificationNo="059";admin.documentOwner="AUTOSAR GbR";admin.documentResponsibility="AUTOSAR GbR";admin.documentStatus="Final";admin.documentTitle="Metamodel";admin.documentVersion="3.1.0";admin.namespaceVersion="3.1.0";admin.partOfRelease="3.1";admin.revision="0001";xml.globalElement="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:AUTOSAR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- global element for class AutosarTopLevelStructure::AUTOSAR -->
  <xsd:element name="AUTOSAR" type="AR:AUTOSAR">
    <xsd:annotation>
      <xsd:documentation>Root element of an AUTOSAR description, also the root element in corresponding XML documents.</xsd:documentation>
      <xsd:appinfo source="tags">admin.documentClassification="Auxiliary";admin.documentIdentificationNo="059";admin.documentOwner="AUTOSAR GbR";admin.documentResponsibility="AUTOSAR GbR";admin.documentStatus="Final";admin.documentTitle="Metamodel";admin.documentVersion="3.1.0";admin.namespaceVersion="3.1.0";admin.partOfRelease="3.1";admin.revision="0001";xml.globalElement="true"</xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  <!-- element group for class Timing::AbsoluteTolerance -->
  <xsd:group name="ABSOLUTE-TOLERANCE">
    <xsd:annotation>
      <xsd:documentation>Maximum allowable deviation</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ABSOLUTE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum allowable deviation in duration (in seconds)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::AbsoluteTolerance -->
  <xsd:complexType name="ABSOLUTE-TOLERANCE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Maximum allowable deviation</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ABSOLUTE-TOLERANCE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::AbstractSignal -->
  <xsd:group name="ABSTRACT-SIGNAL">
    <xsd:annotation>
      <xsd:documentation>A single signal or a signal group (XOR).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="ABSTRACT-SIGNAL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SYSTEM-SIGNAL"/>
      <xsd:enumeration value="SYSTEM-SIGNAL-GROUP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class InlineTextElements::AbstractXref -->
  <xsd:group name="ABSTRACT-XREF">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class SensorActuator::ActuatorHW -->
  <xsd:group name="ACTUATOR-HW">
    <xsd:annotation>
      <xsd:documentation>HW Element Actuator definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-POSITION-TYPE" type="AR:ACTUATOR-HW-DEFAULT-POSITIOIN-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the way the actuator is seen after power on. On Bi-Stable or Multistable actuators the software has to know the status of this device after reset or Power On.
Each actuator has a control input that determines its behaviour</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DEFAULT-POSITION-VALUE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>If there is a specific default value is available. E.g. Valve status = off;</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ELECTRICAL-TYPE" type="AR:ACTUATOR-HW-ELECTRICAL-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the most typical electrical behaviour of the system. This information is necessary for the ECU generation process and for tools which check for later interaction of the different component. (avoid resonance's, planning of the ECU power management).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ENDURANCE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of activation cycles the actuator is designed for.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MOVEMENT" type="AR:ACTUATOR-HW-MOVEMENT-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the way the movement is controlled by AUTOSAR. Positional feedback can be provided by the actuator by the conglomeration of the requisite actuator and sensor primitives.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SensorActuator::ActuatorHW -->
  <xsd:complexType name="ACTUATOR-HW" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>HW Element Actuator definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:SENSOR-ACTUATOR-HW"/>
      <xsd:group ref="AR:ACTUATOR-HW"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::AddInfoParamDef -->
  <xsd:group name="ADD-INFO-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration Parameter Definition for the specification of formated text in the ECU Configuration Parameter Description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::AddInfoParamDef -->
  <xsd:complexType name="ADD-INFO-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration Parameter Definition for the specification of formated text in the ECU Configuration Parameter Description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::AddInfoParameterValue -->
  <xsd:group name="ADD-INFO-PARAMETER-VALUE">
    <xsd:annotation>
      <xsd:documentation>This parameter corresponds to AddInfoParamDef.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::AddInfoParameterValue -->
  <xsd:complexType name="ADD-INFO-PARAMETER-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This parameter corresponds to AddInfoParamDef.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PARAMETER-VALUE"/>
      <xsd:group ref="AR:ADD-INFO-PARAMETER-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AdminData::AdminData -->
  <xsd:group name="ADMIN-DATA">
    <xsd:annotation>
      <xsd:documentation>&lt;adminData&gt; can be used to set administrative information for an element. This administration information is to be treated as metadata such as revision id or state of the file. There are basically four kinds of metadata

* The language and/or used laguages.

* Revision information covering e.g. revision number, state, release date, changes. Note that this information can be given in general as well as related to a particular company.

* Document metadata specific for a company

* Formatting controls that can affect layouts for example.

* Revision information for the element.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-ADMIN-DATA";msr.id="type__ADMIN-DATA_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LANGUAGE" type="AR:L-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute  specifies the master language of the document or the document fragment. The master language is the one in which the document is maintained and from which the other languages are derived from.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="ADMIN-DATA_TYPE__LANGUAGE";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="USED-LANGUAGES" type="AR:MULTI-LANGUAGE-PLAIN-TEXT" minOccurs="0"/>
      <xsd:element name="DOC-REVISIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DOC-REVISION" type="AR:DOC-REVISION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SDGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SDG" type="AR:SDG"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AdminData::AdminData -->
  <xsd:complexType name="ADMIN-DATA" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>&lt;adminData&gt; can be used to set administrative information for an element. This administration information is to be treated as metadata such as revision id or state of the file. There are basically four kinds of metadata

* The language and/or used laguages.

* Revision information covering e.g. revision number, state, release date, changes. Note that this information can be given in general as well as related to a particular company.

* Document metadata specific for a company

* Formatting controls that can affect layouts for example.

* Revision information for the element.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-ADMIN-DATA";msr.id="type__ADMIN-DATA_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ADMIN-DATA"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::AnalogueIO -->
  <xsd:group name="ANALOGUE-IO">
    <xsd:annotation>
      <xsd:documentation>These are the common attributes for both, the ADC and the DAC.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCURACY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>There is a number of different conversion error in an ADC or DAC like non-linearity and absolute error. The accuracy is defined as the total error and it can be expressed as a deviation from its nominal value by e.g. 0.5, 1.0, 1.5 or 2.0 LSB.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CONVERSION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>ADC: The conversion time is the definition how long it takes for an ADC to convert an analogue signal to a digital value.
DAC: The conversion time is the definition how long it takes for a DAC to convert a digital value to an analogue signal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXTERNAL-REFERENCE-VOLTAGE" type="AR:ELECTRICAL-RANGE" minOccurs="0"/>
      <xsd:element name="MODE" type="AR:ANALOGUE-IO-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>An ADC or DAC can operate in continuous, single  or sequential mode. In the continuous mode the conversion is automatically repeated after a completion. In single shot only one conversion is performed. For the sequential mode can a predefined number of different analogue channels be converted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MULTIPLEXED-M" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the design of a simple multiplexer used by an ADC. Example A 2:8-multiplexer has 2 input channels and 8 registers. M is the second value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MULTIPLEXED-N" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the design of a simple multiplexer used by an ADC. Example A 2:8-multiplexer has 2 input channels and 8 registers. N is the first value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESOLUTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>For an Analogue to Digital Converter the resolution defines the number of different voltage levels, which are converted to a digital value. For example, an ADC with 10-bits resolution have the ability to convert an analogue value into 1024 different digital  values.
Unit: Bits</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WIDTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of Bits used to store the digital value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Annotation::Annotation -->
  <xsd:group name="ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>This is a plain annotation which does not have further formal data.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ANNOTATION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Annotation::Annotation -->
  <xsd:complexType name="ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is a plain annotation which does not have further formal data.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ANNOTATION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AnyInstanceRef::AnyInstanceRef -->
  <xsd:group name="ANY-INSTANCE-REF">
    <xsd:annotation>
      <xsd:documentation>Describes a reference to an instance in an AUTOSAR model.</xsd:documentation>
      <xsd:appinfo source="tags">instanceRef.context="rPortPrototype"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-ELEMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTEXT-ELEMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:ATP-FEATURE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATP-FEATURE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AnyInstanceRef::AnyInstanceRef -->
  <xsd:complexType name="ANY-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes a reference to an instance in an AUTOSAR model.</xsd:documentation>
      <xsd:appinfo source="tags">instanceRef.context="rPortPrototype"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:ANY-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Datatypes::ApplicationArrayDataType -->
  <xsd:group name="APPLICATION-ARRAY-DATA-TYPE">
    <xsd:sequence>
      <xsd:element name="ELEMENT" type="AR:APPLICATION-ARRAY-ELEMENT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Datatypes::ApplicationArrayDataType -->
  <xsd:complexType name="APPLICATION-ARRAY-DATA-TYPE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:APPLICATION-ARRAY-DATA-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataPrototoypes::ApplicationArrayElement -->
  <xsd:group name="APPLICATION-ARRAY-ELEMENT">
    <xsd:sequence>
      <xsd:element name="MAX-NUMBER-OF-ELEMENTS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum number of elements that the array can contain.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataPrototoypes::ApplicationArrayElement -->
  <xsd:complexType name="APPLICATION-ARRAY-ELEMENT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:DATA-PROTOTYPE"/>
      <xsd:group ref="AR:APPLICATION-COMPOSITE-ELEMENT-DATA-PROTOTYPE"/>
      <xsd:group ref="AR:APPLICATION-ARRAY-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="APPLICATION-ARRAY-ELEMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-ELEMENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Datatypes::ApplicationCompositeDataType -->
  <xsd:group name="APPLICATION-COMPOSITE-DATA-TYPE">
    <xsd:annotation>
      <xsd:documentation>Abstract base class for all data types composed of other data types.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class DataPrototoypes::ApplicationCompositeElementDataPrototype -->
  <xsd:group name="APPLICATION-COMPOSITE-ELEMENT-DATA-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>This class represents the fact that a data prototype is aggregated within a CompositeType. It is introduced to provide a better distinction between target and context in instanceRefs</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TYPE-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="APPLICATION-COMPOSITE-ELEMENT-DATA-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-ELEMENT"/>
      <xsd:enumeration value="APPLICATION-RECORD-ELEMENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Datatypes::ApplicationDataType -->
  <xsd:group name="APPLICATION-DATA-TYPE">
    <xsd:annotation>
      <xsd:documentation>ApplicationDataType should be used whenever something "physical" is at stake. It is limited to physical attributes such as measurement units.
It does not consider implementation details such as.bit-size, endianess, etc.

It sould be possile to model the physical aspects of a VFB system by using ApplicationDataTypes only.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="APPLICATION-DATA-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinCommunication::ApplicationEntry -->
  <xsd:group name="APPLICATION-ENTRY">
    <xsd:annotation>
      <xsd:documentation>There are three types of frames defined in LIN, i.e. unconditional frame, event triggered frame and sporadic frame. The ApplicationEntry refers to a frame that will be transfered in the frame slot.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-TRIGGERING-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-FRAME-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::ApplicationEntry -->
  <xsd:complexType name="APPLICATION-ENTRY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>There are three types of frames defined in LIN, i.e. unconditional frame, event triggered frame and sporadic frame. The ApplicationEntry refers to a frame that will be transfered in the frame slot.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:APPLICATION-ENTRY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::ApplicationError -->
  <xsd:group name="APPLICATION-ERROR">
    <xsd:annotation>
      <xsd:documentation>This is a user-defined error that is associated with an element of an AUTOSAR interface. It is specific for the particular functionality or service provided by the AUTOSAR software component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ERROR-CODE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The RTE generator is forced to assign this value to the corresponding error symbol. Note that for error codes certain ranges are predefined (see RTE specification).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::ApplicationError -->
  <xsd:complexType name="APPLICATION-ERROR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is a user-defined error that is associated with an element of an AUTOSAR interface. It is specific for the particular functionality or service provided by the AUTOSAR software component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:APPLICATION-ERROR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="APPLICATION-ERROR--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ERROR"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DataMapping::ApplicationErrorMapping -->
  <xsd:group name="APPLICATION-ERROR-MAPPING">
    <xsd:annotation>
      <xsd:documentation>In client server communication, the server may return any value within the application error range.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ApplicationErrorMapping -->
  <xsd:complexType name="APPLICATION-ERROR-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>In client server communication, the server may return any value within the application error range.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:APPLICATION-ERROR-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Datatypes::ApplicationPrimitiveDataType -->
  <xsd:group name="APPLICATION-PRIMITIVE-DATA-TYPE">
    <xsd:annotation>
      <xsd:documentation>A primitive datatype consists of a set of allowed values.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Datatypes::ApplicationPrimitiveDataType -->
  <xsd:complexType name="APPLICATION-PRIMITIVE-DATA-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A primitive datatype consists of a set of allowed values.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:APPLICATION-PRIMITIVE-DATA-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="APPLICATION-PRIMITIVE-DATA-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Datatypes::ApplicationRecordDataType -->
  <xsd:group name="APPLICATION-RECORD-DATA-TYPE">
    <xsd:sequence>
      <xsd:element name="ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="APPLICATION-RECORD-ELEMENT" type="AR:APPLICATION-RECORD-ELEMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Datatypes::ApplicationRecordDataType -->
  <xsd:complexType name="APPLICATION-RECORD-DATA-TYPE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:APPLICATION-RECORD-DATA-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataPrototoypes::ApplicationRecordElement -->
  <xsd:group name="APPLICATION-RECORD-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>An element in a record.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class DataPrototoypes::ApplicationRecordElement -->
  <xsd:complexType name="APPLICATION-RECORD-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An element in a record.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:DATA-PROTOTYPE"/>
      <xsd:group ref="AR:APPLICATION-COMPOSITE-ELEMENT-DATA-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="APPLICATION-RECORD-ELEMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-RECORD-ELEMENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Components::ApplicationSoftwareComponentType -->
  <xsd:group name="APPLICATION-SOFTWARE-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>The ApplicationSoftwareComponentType is used to represent the application software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Components::ApplicationSoftwareComponentType -->
  <xsd:complexType name="APPLICATION-SOFTWARE-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ApplicationSoftwareComponentType is used to represent the application software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataElements::ArParameterRef -->
  <xsd:group name="AR-PARAMETER-REF">
    <xsd:annotation>
      <xsd:documentation>This class represents a reference to calibration parameter within Autosar which can be

1. a reference to a component local parameter

2. an instance reference to a 

* a parameter provided by a PortInterface
* a parameter within a complex data type.</xsd:documentation>
      <xsd:appinfo source="tags">instanceRef.context="componentPrototpye portPrototype "</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AR-PARAMETER-IREF" type="AR:AR-VARIABLE-OR-PARAMETER-REF--DATA-PROTOTYPE-IREF" minOccurs="0"/>
      <xsd:element name="LOCAL-PARAMETER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PARAMETER-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataElements::ArParameterRef -->
  <xsd:complexType name="AR-PARAMETER-REF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents a reference to calibration parameter within Autosar which can be

1. a reference to a component local parameter

2. an instance reference to a 

* a parameter provided by a PortInterface
* a parameter within a complex data type.</xsd:documentation>
      <xsd:appinfo source="tags">instanceRef.context="componentPrototpye portPrototype "</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:AR-PARAMETER-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::ArVariableOrParameterRef_DataPrototype -->
  <xsd:group name="AR-VARIABLE-OR-PARAMETER-REF--DATA-PROTOTYPE-IREF">
    <xsd:annotation>
      <xsd:documentation>This class implements an instance reference which can be applied for variables as well as for parameters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONTEXT-DATA-PROTOTYPE-REF" minOccurs="0" maxOccurs="unbounded">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-COMPOSITE-ELEMENT-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ROOT-VARIABLE-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:AUTOSAR-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:AUTOSAR-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::ArVariableOrParameterRef_DataPrototype -->
  <xsd:complexType name="AR-VARIABLE-OR-PARAMETER-REF--DATA-PROTOTYPE-IREF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class implements an instance reference which can be applied for variables as well as for parameters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:AR-VARIABLE-OR-PARAMETER-REF--DATA-PROTOTYPE-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataElements::ArVariableRef -->
  <xsd:group name="AR-VARIABLE-REF">
    <xsd:annotation>
      <xsd:documentation>This class represents a reference to a variable within Autosar which can be

1. a reference to a component local variable

2. an instance reference to a 

* a variable provided by a PortInterface
* a variable within a complex data type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AR-VARIABLE-IREF" type="AR:AR-VARIABLE-OR-PARAMETER-REF--DATA-PROTOTYPE-IREF" minOccurs="0"/>
      <xsd:element name="LOCAL-VARIABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataElements::ArVariableRef -->
  <xsd:complexType name="AR-VARIABLE-REF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents a reference to a variable within Autosar which can be

1. a reference to a component local variable

2. an instance reference to a 

* a variable provided by a PortInterface
* a variable within a complex data type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:AR-VARIABLE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EventTriggeringConstraint::ArbitraryEventTriggering -->
  <xsd:group name="ARBITRARY-EVENT-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>The arbitrary event triggering describes that an event occurs occasionally, singly, irregular or randomly. 

The primary purpose of this event triggering is to abstract event occurrences captured by data acquisition tools (background debugger, trace analyzer, etc.) during system runtime.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONFIDENCE-INTERVAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DOCUMENTATION-BLOCK--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MAXIMUM-INTER-ARRIVAL-TIME-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MAXIMUM-INTER-ARRIVAL-TIME-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MINIMUM-INTER-ARRIVAL-TIME-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MINIMUM-INTER-ARRIVAL-TIME-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="VARIATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DOCUMENTATION-BLOCK--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EventTriggeringConstraint::ArbitraryEventTriggering -->
  <xsd:complexType name="ARBITRARY-EVENT-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The arbitrary event triggering describes that an event occurs occasionally, singly, irregular or randomly. 

The primary purpose of this event triggering is to abstract event occurrences captured by data acquisition tools (background debugger, trace analyzer, etc.) during system runtime.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EVENT-TRIGGERING-CONSTRAINT"/>
      <xsd:group ref="AR:ARBITRARY-EVENT-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Figure::Area -->
  <xsd:group name="AREA">
    <xsd:annotation>
      <xsd:documentation>This element specifies a region in an image map. Image maps enable authors to specify regions in an object (e.g. a graphic) and to assign a specific activity to each region (e.g. load a document, launch a program etc.).

For more details refer to the specifiaction of HTML.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__AREA_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class Figure::Area -->
  <xsd:attributeGroup name="AREA">
    <xsd:annotation>
      <xsd:documentation>This element specifies a region in an image map. Image maps enable authors to specify regions in an object (e.g. a graphic) and to assign a specific activity to each region (e.g. load a document, launch a program etc.).

For more details refer to the specifiaction of HTML.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__AREA_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="ACCESSKEY" type="xsd:string"/>
    <xsd:attribute name="ALT" type="xsd:string"/>
    <xsd:attribute name="CLASS" type="xsd:string"/>
    <xsd:attribute name="COORDS" type="xsd:string"/>
    <xsd:attribute name="HREF" type="xsd:string"/>
    <xsd:attribute name="NOHREF" type="AR:AREA-ENUM-NOHREF"/>
    <xsd:attribute name="ONBLUR" type="xsd:string"/>
    <xsd:attribute name="ONCLICK" type="xsd:string"/>
    <xsd:attribute name="ONDBLCLICK" type="xsd:string"/>
    <xsd:attribute name="ONFOCUS" type="xsd:string"/>
    <xsd:attribute name="ONKEYDOWN" type="xsd:string"/>
    <xsd:attribute name="ONKEYPRESS" type="xsd:string"/>
    <xsd:attribute name="ONKEYUP" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEDOWN" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEMOVE" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEOUT" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEOVER" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEUP" type="xsd:string"/>
    <xsd:attribute name="SHAPE" type="AR:AREA-ENUM-SHAPE">
      <xsd:annotation>
        <xsd:documentation>The shape of the area. Note that in HTML this is dfaulted to RECT.</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="RECT";msr.id="AREA_TYPE__AREA_TYPE__SHAPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="STYLE" type="xsd:string"/>
    <xsd:attribute name="TABINDEX" type="xsd:string"/>
    <xsd:attribute name="TITLE" type="xsd:string"/>
  </xsd:attributeGroup>
  <!-- complex type for class Figure::Area -->
  <xsd:complexType name="AREA" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies a region in an image map. Image maps enable authors to specify regions in an object (e.g. a graphic) and to assign a specific activity to each region (e.g. load a document, launch a program etc.).

For more details refer to the specifiaction of HTML.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__AREA_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:AREA"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::ArgumentDataPrototype -->
  <xsd:group name="ARGUMENT-DATA-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>An argument of an operation, much like a data element, but also carries direction information and is associated with a particular operation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DIRECTION" type="AR:DIRECTION-KIND" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::ArgumentDataPrototype -->
  <xsd:complexType name="ARGUMENT-DATA-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An argument of an operation, much like a data element, but also carries direction information and is associated with a particular operation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:DATA-PROTOTYPE"/>
      <xsd:group ref="AR:AUTOSAR-DATA-PROTOTYPE"/>
      <xsd:group ref="AR:ARGUMENT-DATA-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ARGUMENT-DATA-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ARGUMENT-DATA-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Constants::ArrayValueSpecification -->
  <xsd:group name="ARRAY-VALUE-SPECIFICATION">
    <xsd:annotation>
      <xsd:documentation>Specifies the values for an array.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::ArrayValueSpecification -->
  <xsd:complexType name="ARRAY-VALUE-SPECIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the values for an array.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ARRAY-VALUE-SPECIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Composition::AssemblyConnectorPrototype -->
  <xsd:group name="ASSEMBLY-CONNECTOR-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>AssemblyConnectorPrototypes are exclusively used to connect ComponentPrototypes in the context of a CompositionType.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PROVIDER" type="AR:P-PORT-IN-COMPOSITION-INSTANCE-REF" minOccurs="0"/>
      <xsd:element name="REQUESTER" type="AR:R-PORT-IN-COMPOSITION-INSTANCE-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Composition::AssemblyConnectorPrototype -->
  <xsd:complexType name="ASSEMBLY-CONNECTOR-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>AssemblyConnectorPrototypes are exclusively used to connect ComponentPrototypes in the context of a CompositionType.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:CONNECTOR-PROTOTYPE"/>
      <xsd:group ref="AR:ASSEMBLY-CONNECTOR-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUResourceTemplate::AssemblyHWConnection -->
  <xsd:group name="ASSEMBLY-HW-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>An AssemblyHWConnection is established between at least two HWPorts provided by different HWElements. 
The AssemblyHWConnection can only be established between HWPorts on the same hierarchical level. To connect accross hierarchical levels use the DelegationHWConnection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="HW-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="HW-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::AssemblyHWConnection -->
  <xsd:complexType name="ASSEMBLY-HW-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An AssemblyHWConnection is established between at least two HWPorts provided by different HWElements. 
The AssemblyHWConnection can only be established between HWPorts on the same hierarchical level. To connect accross hierarchical levels use the DelegationHWConnection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-CONNECTION"/>
      <xsd:group ref="AR:ASSEMBLY-HW-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::AssignFrameId -->
  <xsd:group name="ASSIGN-FRAME-ID">
    <xsd:annotation>
      <xsd:documentation>Schedule entry for an  Assign Frame Id master request.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ASSIGNED-FRAME-TRIGGERING-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-FRAME-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::AssignFrameId -->
  <xsd:complexType name="ASSIGN-FRAME-ID" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Schedule entry for an  Assign Frame Id master request.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
      <xsd:group ref="AR:ASSIGN-FRAME-ID"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::AssignFrameIdRange -->
  <xsd:group name="ASSIGN-FRAME-ID-RANGE">
    <xsd:annotation>
      <xsd:documentation>AssignFrameIdRange generates an assign frame PID range request.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-PIDS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="4">
            <xsd:element name="FRAME-PID" type="xsd:integer" minOccurs="0" maxOccurs="4">
              <xsd:annotation>
                <xsd:documentation>Optional attribute which contains four frame_PID values that are included in the  request.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="START-INDEX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The startIndex sets the index to the first frame to assign a PID.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::AssignFrameIdRange -->
  <xsd:complexType name="ASSIGN-FRAME-ID-RANGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>AssignFrameIdRange generates an assign frame PID range request.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
      <xsd:group ref="AR:ASSIGN-FRAME-ID-RANGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::AssignNad -->
  <xsd:group name="ASSIGN-NAD">
    <xsd:annotation>
      <xsd:documentation>Schedule entry for an Assign NAD master request.</xsd:documentation>
      <xsd:appinfo source="tags">map.param="Fibex::Fibex4Lin::LinCommunication::AssignmentFrameIdtiming"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NEW-NAD" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The newly assigned NAD value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::AssignNad -->
  <xsd:complexType name="ASSIGN-NAD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Schedule entry for an Assign NAD master request.</xsd:documentation>
      <xsd:appinfo source="tags">map.param="Fibex::Fibex4Lin::LinCommunication::AssignmentFrameIdtiming"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
      <xsd:group ref="AR:ASSIGN-NAD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServerCall::AsynchronousServerCallPoint -->
  <xsd:group name="ASYNCHRONOUS-SERVER-CALL-POINT">
    <xsd:annotation>
      <xsd:documentation>An asynchronous server call-point is used for asynchronous invocation of an operation prototype.
IMPORTANT: a server-call-point cannot be used concurrently. Once the client runnable has made the invocation, the server-call-point cannot be used until the call returns (or an error occurs!) at which point the server call-point becomes available again...</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServerCall::AsynchronousServerCallPoint -->
  <xsd:complexType name="ASYNCHRONOUS-SERVER-CALL-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An asynchronous server call-point is used for asynchronous invocation of an operation prototype.
IMPORTANT: a server-call-point cannot be used concurrently. Once the client runnable has made the invocation, the server-call-point cannot be used until the call returns (or an error occurs!) at which point the server call-point becomes available again...</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SERVER-CALL-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ASYNCHRONOUS-SERVER-CALL-POINT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-POINT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ServerCall::AsynchronousServerCallResultPoint -->
  <xsd:group name="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a AsynchronousServerCallResultPoint, it has the possibility to get the result of the referenced asynchronous client-server call point.
If it is associated with AsynchronousServerCallReturnsEvent, this RTEEvent notifies the completion of the required operation or a timeout, this event can be waited for or it can lead to the invocation of a runnable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ASYNCHRONOUS-SERVER-CALL-POINT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ASYNCHRONOUS-SERVER-CALL-POINT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServerCall::AsynchronousServerCallResultPoint -->
  <xsd:complexType name="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a AsynchronousServerCallResultPoint, it has the possibility to get the result of the referenced asynchronous client-server call point.
If it is associated with AsynchronousServerCallReturnsEvent, this RTEEvent notifies the completion of the required operation or a timeout, this event can be waited for or it can lead to the invocation of a runnable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ASYNCHRONOUS-SERVER-CALL-RESULT-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class RTEEvents::AsynchronousServerCallReturnsEvent -->
  <xsd:group name="ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT">
    <xsd:annotation>
      <xsd:documentation>This event is raised when an asynchronous server call is finished.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ASYNCHRONOUS-SERVER-CALL-RESULT-POINT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::AsynchronousServerCallReturnsEvent -->
  <xsd:complexType name="ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This event is raised when an asynchronous server call is finished.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Components::AtomicSoftwareComponentType -->
  <xsd:group name="ATOMIC-SOFTWARE-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>An atomic software component is atomic in the sense that it cannot be further decomposed and distributed across multiple ECUs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="ATOMIC-SOFTWARE-COMPONENT-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class AbstractStructure::AtpClassifier -->
  <xsd:group name="ATP-CLASSIFIER">
    <xsd:sequence>
      <!-- Association <<atpDerived>>atpFeature skipped -->
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="ATP-CLASSIFIER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="ASSEMBLY-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="BSW-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="BSW-MODULE-DESCRIPTION"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
      <xsd:enumeration value="DELEGATION-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
      <xsd:enumeration value="MODE-DECLARATION"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP"/>
      <xsd:enumeration value="MODE-INTERFACE"/>
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
      <xsd:enumeration value="NV-DATA-INTERFACE"/>
      <xsd:enumeration value="OPERATION-PROTOTYPE"/>
      <xsd:enumeration value="PARAMETER-COMPONENT-TYPE"/>
      <xsd:enumeration value="PARAMETER-INTERFACE"/>
      <xsd:enumeration value="SENDER-RECEIVER-INTERFACE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SWC-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="SYSTEM"/>
      <xsd:enumeration value="TRIGGER"/>
      <xsd:enumeration value="TRIGGER-INTERFACE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class AbstractStructure::AtpFeature -->
  <xsd:group name="ATP-FEATURE">
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="ATP-FEATURE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-ELEMENT"/>
      <xsd:enumeration value="APPLICATION-RECORD-ELEMENT"/>
      <xsd:enumeration value="ARGUMENT-DATA-PROTOTYPE"/>
      <xsd:enumeration value="ASSEMBLY-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="BSW-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="BSW-MODULE-DESCRIPTION"/>
      <xsd:enumeration value="COMPONENT-PROTOTYPE"/>
      <xsd:enumeration value="DELEGATION-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="MODE-DECLARATION"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP-PROTOTYPE"/>
      <xsd:enumeration value="OPERATION-PROTOTYPE"/>
      <xsd:enumeration value="P-PORT-PROTOTYPE"/>
      <xsd:enumeration value="PARAMETER-DATA-PROTOTYPE"/>
      <xsd:enumeration value="R-PORT-PROTOTYPE"/>
      <xsd:enumeration value="SOFTWARE-COMPOSITION"/>
      <xsd:enumeration value="SWC-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="SYSTEM"/>
      <xsd:enumeration value="TRIGGER"/>
      <xsd:enumeration value="VARIABLE-DATA-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class AbstractStructure::AtpInstanceRef -->
  <xsd:group name="ATP-INSTANCE-REF">
    <xsd:sequence>
      <xsd:element name="ATP-BASE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATP-CLASSIFIER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <!-- Association <<atpDerived>>atpContextElement skipped -->
      <xsd:element name="ATP-TARGET-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATP-FEATURE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class AbstractStructure::AtpPrototype -->
  <xsd:group name="ATP-PROTOTYPE">
    <xsd:sequence>
      <xsd:element name="ATP-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATP-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class AbstractStructure::AtpStructureElement -->
  <xsd:group name="ATP-STRUCTURE-ELEMENT">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class AbstractStructure::AtpType -->
  <xsd:group name="ATP-TYPE">
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="ATP-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP"/>
      <xsd:enumeration value="MODE-INTERFACE"/>
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
      <xsd:enumeration value="NV-DATA-INTERFACE"/>
      <xsd:enumeration value="PARAMETER-COMPONENT-TYPE"/>
      <xsd:enumeration value="PARAMETER-INTERFACE"/>
      <xsd:enumeration value="SENDER-RECEIVER-INTERFACE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
      <xsd:enumeration value="TRIGGER-INTERFACE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class VariantHandling::AttributeValueVariationPoint -->
  <xsd:group name="ATTRIBUTE-VALUE-VARIATION-POINT">
    <xsd:annotation>
      <xsd:documentation>This variation point allows to compute the value of an attribute/property depending on SystemConstants.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BINDING-TIME" type="AR:BINDING-TIME-ENUM" minOccurs="0"/>
      <xsd:element name="VFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VALUE-BY-FORMULA" type="AR:VALUE-BY-FORMULA"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::AttributeValueVariationPoint -->
  <xsd:complexType name="ATTRIBUTE-VALUE-VARIATION-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This variation point allows to compute the value of an attribute/property depending on SystemConstants.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ATTRIBUTE-VALUE-VARIATION-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataPrototoypes::AutosarDataPrototype -->
  <xsd:group name="AUTOSAR-DATA-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>Base class for prototypical roles of a datatype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TYPE-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:AUTOSAR-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="AUTOSAR-DATA-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ARGUMENT-DATA-PROTOTYPE"/>
      <xsd:enumeration value="PARAMETER-DATA-PROTOTYPE"/>
      <xsd:enumeration value="VARIABLE-DATA-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Datatypes::AutosarDataType -->
  <xsd:group name="AUTOSAR-DATA-TYPE">
    <xsd:annotation>
      <xsd:documentation>Abstract base class for user defined AUTOSAR data types for ECU software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="AUTOSAR-DATA-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BaseTypes::BaseType -->
  <xsd:group name="BASE-TYPE">
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:BASE-TYPE-DIRECT-DEFINITION"/>
        <xsd:group ref="AR:BASE-TYPE-INDIRECT-DEFINITION"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class BaseTypes::BaseTypeAbsSize -->
  <xsd:group name="BASE-TYPE-ABS-SIZE">
    <xsd:annotation>
      <xsd:documentation>This is the absolute size of the basetype. In this case the BaseType is of fixed lenght.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_absSize_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BASE-TYPE-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the length of the data type specified in the container in bits.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="BASE-TYPE_absSize_TYPE__BASE-TYPE-SIZE";msr.tbdString="true";xml.sequenceOffset="60"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BaseTypes::BaseTypeAbsSize -->
  <xsd:complexType name="BASE-TYPE-ABS-SIZE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is the absolute size of the basetype. In this case the BaseType is of fixed lenght.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_absSize_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BASE-TYPE-ABS-SIZE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BaseTypes::BaseTypeDefinition -->
  <xsd:group name="BASE-TYPE-DEFINITION">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class BaseTypes::BaseTypeDirectDefinition -->
  <xsd:group name="BASE-TYPE-DIRECT-DEFINITION">
    <xsd:annotation>
      <xsd:documentation>This BaseType is defined directly (as opposite to a derived BaseType)</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_directDefinition_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:BASE-TYPE-ABS-SIZE"/>
        <xsd:group ref="AR:BASE-TYPE-MAX-SIZE"/>
      </xsd:choice>
      <xsd:element name="BASE-TYPE-ENCODING" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This specifies, how an object of the current BaseType is encode eg. in an ECU in a message sequence.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="BASE-TYPE_directDefinition_TYPE__BASE-TYPE-ENCODING";msr.tbdString="true";xml.sequenceOffset="90"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MEM-ALIGNMENT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>describes the alignment of the memory object in bits. E.g. "1" specifies, that the object in question is aligned to a byte while "32" specifies that it is aligned four byte.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="BASE-TYPE_directDefinition_TYPE__MEM-ALIGNMENT";msr.tbdString="true";xml.sequenceOffset="100"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BYTE-ORDER" type="AR:BYTE-ORDER" minOccurs="0"/>
      <xsd:element name="NATIVE-DECLARATION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute describes the declaration of such a base type in the native programming language, primarliy in the Programming language C. This can then be used by a code generator to include the necessary delcations into a header file. For example

BaseType with
   shortName: "MyUnsignedInt"
   nativeDeclaration: "unsigned short"

Results in

typedef unsigned short MyUnsignedInt;</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="120"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BaseTypes::BaseTypeDirectDefinition -->
  <xsd:complexType name="BASE-TYPE-DIRECT-DEFINITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This BaseType is defined directly (as opposite to a derived BaseType)</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_directDefinition_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BASE-TYPE-DIRECT-DEFINITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BaseTypes::BaseTypeIndirectDefinition -->
  <xsd:group name="BASE-TYPE-INDIRECT-DEFINITION">
    <xsd:annotation>
      <xsd:documentation>This BaseType is defined by referring to anotherone. This indirect definition allows to create alias base types.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_indirectDefinition_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BASE-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-BASE-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BaseTypes::BaseTypeIndirectDefinition -->
  <xsd:complexType name="BASE-TYPE-INDIRECT-DEFINITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This BaseType is defined by referring to anotherone. This indirect definition allows to create alias base types.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_indirectDefinition_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BASE-TYPE-INDIRECT-DEFINITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BaseTypes::BaseTypeMaxSize -->
  <xsd:group name="BASE-TYPE-MAX-SIZE">
    <xsd:annotation>
      <xsd:documentation>This is the maximum size of a BaseType in case of a dynamic BaseType.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_maxSize_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAX-BASE-TYPE-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the maximum length of the BaseType  in bits</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="BASE-TYPE_maxSize_TYPE__MAX-BASE-TYPE-SIZE";msr.tbdString="true";xml.sequenceOffset="80"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BaseTypes::BaseTypeMaxSize -->
  <xsd:complexType name="BASE-TYPE-MAX-SIZE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is the maximum size of a BaseType in case of a dynamic BaseType.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_maxSize_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BASE-TYPE-MAX-SIZE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BaseTypes::BaseTypeSizeDefinition -->
  <xsd:group name="BASE-TYPE-SIZE-DEFINITION">
    <xsd:annotation>
      <xsd:documentation>This abstract class represents the possible methods of defining the size of a BaseType.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__BASE-TYPE_sizeDefintion_TYPE";msr.isOrgroup="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class VariantHandling::BindingFunction -->
  <xsd:group name="BINDING-FUNCTION">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class VariantHandling::BindingFunction -->
  <xsd:complexType name="BINDING-FUNCTION" abstract="false" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::BooleanParamDef -->
  <xsd:group name="BOOLEAN-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Boolean. allowed values are true and false.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Default value of the boolean configuration parameter.

atpVariation: [ECUC00083]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::BooleanParamDef -->
  <xsd:complexType name="BOOLEAN-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Boolean. allowed values are true and false.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:BOOLEAN-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BasicElements::BootTime -->
  <xsd:group name="BOOT-TIME">
    <xsd:annotation>
      <xsd:documentation>Time information for ECU and PU startup.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COLD-START-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Time it takes to come from a completely powered down state to the HWInit state in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESET-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Time it takes from the reset initiation to the HWInit state in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BasicElements::BootTime -->
  <xsd:complexType name="BOOT-TIME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Time information for ECU and PU startup.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BOOT-TIME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::Br -->
  <xsd:group name="BR">
    <xsd:annotation>
      <xsd:documentation>This element is the same as function here as in a HTML document i.e. it forces a line break.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__BR_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class InlineTextElements::Br -->
  <xsd:complexType name="BR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element is the same as function here as in a HTML document i.e. it forces a line break.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__BR_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BswImplementation::BswDebugDataElement -->
  <xsd:group name="BSW-DEBUG-DATA-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>Local data element declared for debugging within this module or cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LOCAL-DEBUG-DATAS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="BSW-DEBUG-DATA-ELEMENT" type="AR:BSW-DEBUG-DATA-ELEMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswImplementation::BswDebugDataElement -->
  <xsd:complexType name="BSW-DEBUG-DATA-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Local data element declared for debugging within this module or cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-DEBUG-DATA-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BswImplementation::BswDebugInfo -->
  <xsd:group name="BSW-DEBUG-INFO">
    <xsd:annotation>
      <xsd:documentation>Collects the information on the data provided to the AUTOSAR debug module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LOCAL-DEBUG-DATAS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="BSW-DEBUG-DATA-ELEMENT" type="AR:BSW-DEBUG-DATA-ELEMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PARAMETER-ACCESSED-FOR-DEBUG-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-ACCESSED-FOR-DEBUG-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:PARAMETER-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="VARIABLE-ACCESSED-FOR-DEBUG-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESSED-FOR-DEBUG-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswImplementation::BswDebugInfo -->
  <xsd:complexType name="BSW-DEBUG-INFO" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Collects the information on the data provided to the AUTOSAR debug module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-DEBUG-INFO"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BswBehavior::BswEvent -->
  <xsd:group name="BSW-EVENT">
    <xsd:annotation>
      <xsd:documentation>Defines an event which is used to trigger a schedulable entity of this BSW module or cluster. The event is local to the BSW module or cluster. The short name of the class instance is intended as an input to configure the required API of the BSW Scheduler.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DISABLED-IN-MODE-IREFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DISABLED-IN-MODE-IREF" type="AR:BSW-EVENT--DISABLED-IN-MODE-IREF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="STARTS-ON-EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-SCHEDULABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class _instanceRef::BswEvent_disabledInMode -->
  <xsd:group name="BSW-EVENT--DISABLED-IN-MODE-IREF">
    <xsd:sequence>
      <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::BswEvent_disabledInMode -->
  <xsd:complexType name="BSW-EVENT--DISABLED-IN-MODE-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:BSW-EVENT--DISABLED-IN-MODE-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BswBehavior::BswExternalTriggerOccuredEvent -->
  <xsd:group name="BSW-EXTERNAL-TRIGGER-OCCURED-EVENT">
    <xsd:annotation>
      <xsd:documentation>A BswEvent resulting from a trigger released by another module or cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswExternalTriggerOccuredEvent -->
  <xsd:complexType name="BSW-EXTERNAL-TRIGGER-OCCURED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A BswEvent resulting from a trigger released by another module or cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-EVENT"/>
      <xsd:group ref="AR:BSW-EXTERNAL-TRIGGER-OCCURED-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BswImplementation::BswImplementation -->
  <xsd:group name="BSW-IMPLEMENTATION">
    <xsd:annotation>
      <xsd:documentation>Contains the implementation specific information in addition to the generic specification (BswModuleDescription and BswBehavior).
It is possible to have several different BswImplementations referring to the same BswBehavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AR-MAJOR-VERSION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Major version number of AUTOSAR specification on which this implementation is based on.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="AR-MINOR-VERSION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minor version number of AUTOSAR specification on which this implementation is based on.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="AR-PATCH-VERSION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Patch level version number of AUTOSAR specification on which this implementation is based on.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BEHAVIOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-INTERNAL-BEHAVIOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DEBUG-INFO" type="AR:BSW-DEBUG-INFO" minOccurs="0"/>
      <xsd:element name="PRECONFIGURED-CONFIGURATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODULE-CONFIGURATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RECOMMENDED-CONFIGURATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODULE-CONFIGURATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-HW-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="REQUIRED-HW-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-ELEMENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="VENDOR-API-INFIX" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>In driver modules which can be instantiated several times on a single ECU, BSW00347 requires that the name of APIs is extended by the VendorId and a vendor specific name. 
This parameter is used to specify the vendor specific name. In total, the implementation specific name is generated as follows:
&lt;ModuleName&gt;_&lt;VendorId&gt;_ &lt;VendorApiInfix&gt;&lt;Api name from SWS&gt;.

E.g.  assuming that the VendorId of the implementor is 123 and the implementer chose a VendorApiInfix of "v11r456" a api name Can_Write defined in the SWS will translate to Can_123_v11r456Write. 

This attribute is mandatory for all modules with upper multiplicity &gt; 1. It shall not be used for modules with upper multiplicity =1.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VENDOR-SPECIFIC-MODULE-DEF-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODULE-DEF--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswImplementation::BswImplementation -->
  <xsd:complexType name="BSW-IMPLEMENTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Contains the implementation specific information in addition to the generic specification (BswModuleDescription and BswBehavior).
It is possible to have several different BswImplementations referring to the same BswBehavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IMPLEMENTATION"/>
      <xsd:group ref="AR:BSW-IMPLEMENTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-IMPLEMENTATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-IMPLEMENTATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BswBehavior::BswInternalBehavior -->
  <xsd:group name="BSW-INTERNAL-BEHAVIOR">
    <xsd:annotation>
      <xsd:documentation>Specifies the behavior of a BSW module or a BSW cluster w.r.t. the code entities visible by the BSW Scheduler.
It is possible to have several different BswInternalBehaviors referring to the same BswModuleDescription.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ENTITYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="BSW-INTERRUPT-ENTITY" type="AR:BSW-INTERRUPT-ENTITY"/>
            <xsd:element name="BSW-MODULE-ENTITY" type="AR:BSW-MODULE-ENTITY"/>
            <xsd:element name="BSW-SCHEDULABLE-ENTITY" type="AR:BSW-SCHEDULABLE-ENTITY"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EVENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="BSW-EXTERNAL-TRIGGER-OCCURED-EVENT" type="AR:BSW-EXTERNAL-TRIGGER-OCCURED-EVENT"/>
            <xsd:element name="BSW-INTERNAL-TRIGGER-OCCURED-EVENT" type="AR:BSW-INTERNAL-TRIGGER-OCCURED-EVENT"/>
            <xsd:element name="BSW-MODE-SWITCH-EVENT" type="AR:BSW-MODE-SWITCH-EVENT"/>
            <xsd:element name="BSW-TIMING-EVENT" type="AR:BSW-TIMING-EVENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODULE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-MODULE-DESCRIPTION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswInternalBehavior -->
  <xsd:complexType name="BSW-INTERNAL-BEHAVIOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the behavior of a BSW module or a BSW cluster w.r.t. the code entities visible by the BSW Scheduler.
It is possible to have several different BswInternalBehaviors referring to the same BswModuleDescription.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:INTERNAL-BEHAVIOR"/>
      <xsd:group ref="AR:BSW-INTERNAL-BEHAVIOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-INTERNAL-BEHAVIOR--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-INTERNAL-BEHAVIOR"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BswBehavior::BswInternalTriggerOccuredEvent -->
  <xsd:group name="BSW-INTERNAL-TRIGGER-OCCURED-EVENT">
    <xsd:annotation>
      <xsd:documentation>A BswEvent, which can happen sporadically. The event is activated by explicit calls from the module to the BSW Scheduler. The main purpose for such an event is to cause a context switch, e.g. from an ISR context into a task context. Activation and switching are handled within the same module or cluster only.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswInternalTriggerOccuredEvent -->
  <xsd:complexType name="BSW-INTERNAL-TRIGGER-OCCURED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A BswEvent, which can happen sporadically. The event is activated by explicit calls from the module to the BSW Scheduler. The main purpose for such an event is to cause a context switch, e.g. from an ISR context into a task context. Activation and switching are handled within the same module or cluster only.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-INTERNAL-TRIGGER-OCCURED-EVENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-INTERNAL-TRIGGER-OCCURED-EVENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BswBehavior::BswInterruptEntity -->
  <xsd:group name="BSW-INTERRUPT-ENTITY">
    <xsd:annotation>
      <xsd:documentation>BSW module entity, which is designed to be triggered by an interrupt.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INTERRUPT-CATEGORY" type="AR:BSW-INTERRUPT-CATEGORY" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Category of the interrupt</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INTERRUPT-SOURCE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Allows a textual documentation of the intended interrupt source.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswInterruptEntity -->
  <xsd:complexType name="BSW-INTERRUPT-ENTITY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>BSW module entity, which is designed to be triggered by an interrupt.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-MODULE-ENTITY"/>
      <xsd:group ref="AR:BSW-INTERRUPT-ENTITY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BswBehavior::BswModeSwitchEvent -->
  <xsd:group name="BSW-MODE-SWITCH-EVENT">
    <xsd:annotation>
      <xsd:documentation>A BswEvent resulting from a mode switch.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTIVATION" type="AR:MODE-ACTIVATION-KIND" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Kind of activation w.r.t. to the referred mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MODE-IREF" type="AR:BSW-MODE-SWITCH-EVENT--MODE-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswModeSwitchEvent -->
  <xsd:complexType name="BSW-MODE-SWITCH-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A BswEvent resulting from a mode switch.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-EVENT"/>
      <xsd:group ref="AR:BSW-MODE-SWITCH-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::BswModeSwitchEvent_mode -->
  <xsd:group name="BSW-MODE-SWITCH-EVENT--MODE-IREF">
    <xsd:sequence>
      <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::BswModeSwitchEvent_mode -->
  <xsd:complexType name="BSW-MODE-SWITCH-EVENT--MODE-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:BSW-MODE-SWITCH-EVENT--MODE-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BswInterfaces::BswModuleDependency -->
  <xsd:group name="BSW-MODULE-DEPENDENCY">
    <xsd:annotation>
      <xsd:documentation>This class collects the dependencies of a BSW module or cluster on a certain other BSW module. Note that there can be more than one instance of this class per target module. This allows to group certain dependencies, e.g. entries/callbacks belonging to a certain ServiceNeeds item (e.g. an Nv block) can be grouped together.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EXPECTED-CALLBACK-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="EXPECTED-CALLBACK-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-ENTRY-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="REQUIRED-ENTRY-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SERVICE-ITEMS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COM-MGR-USER-NEEDS" type="AR:COM-MGR-USER-NEEDS"/>
            <xsd:element name="DIAGNOSTIC-COMMUNICATION-NEEDS" type="AR:DIAGNOSTIC-COMMUNICATION-NEEDS"/>
            <xsd:element name="DIAGNOSTIC-EVENT-NEEDS" type="AR:DIAGNOSTIC-EVENT-NEEDS"/>
            <xsd:element name="ECU-STATE-MGR-USER-NEEDS" type="AR:ECU-STATE-MGR-USER-NEEDS"/>
            <xsd:element name="FUNCTION-INHIBITION-NEEDS" type="AR:FUNCTION-INHIBITION-NEEDS"/>
            <xsd:element name="NV-BLOCK-NEEDS" type="AR:NV-BLOCK-NEEDS"/>
            <xsd:element name="OBD-CONTROL-SERVICE-NEEDS" type="AR:OBD-CONTROL-SERVICE-NEEDS"/>
            <xsd:element name="OBD-INFO-SERVICE-NEEDS" type="AR:OBD-INFO-SERVICE-NEEDS"/>
            <xsd:element name="OBD-MONITOR-SERVICE-NEEDS" type="AR:OBD-MONITOR-SERVICE-NEEDS"/>
            <xsd:element name="OBD-PID-SERVICE-NEEDS" type="AR:OBD-PID-SERVICE-NEEDS"/>
            <xsd:element name="OBD-RATIO-SERVICE-NEEDS" type="AR:OBD-RATIO-SERVICE-NEEDS"/>
            <xsd:element name="SERVICE-NEEDS" type="AR:SERVICE-NEEDS"/>
            <xsd:element name="SUPERVISED-ENTITY-NEEDS" type="AR:SUPERVISED-ENTITY-NEEDS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-MODULE-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>AUTOSAR identifier of the target module of which the dependencies are defined.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswInterfaces::BswModuleDependency -->
  <xsd:complexType name="BSW-MODULE-DEPENDENCY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class collects the dependencies of a BSW module or cluster on a certain other BSW module. Note that there can be more than one instance of this class per target module. This allows to group certain dependencies, e.g. entries/callbacks belonging to a certain ServiceNeeds item (e.g. an Nv block) can be grouped together.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-MODULE-DEPENDENCY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BswOverview::BswModuleDescription -->
  <xsd:group name="BSW-MODULE-DESCRIPTION">
    <xsd:annotation>
      <xsd:documentation>Root element for the description of a single BSW module or BSW cluster.
In case it describes a BSW module, the short name of this element equals the name of the BSW module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-MODULE-DEPENDENCYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="BSW-MODULE-DEPENDENCY" type="AR:BSW-MODULE-DEPENDENCY"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODULE-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Refers to the BSW Module Identifier defined by the AUTOSAR standard.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OUTGOING-CALLBACK-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OUTGOING-CALLBACK-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROVIDED-ENTRY-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PROVIDED-ENTRY-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROVIDED-MODE-GROUPS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RELEASED-TRIGGERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TRIGGER" type="AR:TRIGGER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-MODE-GROUPS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-TRIGGERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TRIGGER" type="AR:TRIGGER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswOverview::BswModuleDescription -->
  <xsd:complexType name="BSW-MODULE-DESCRIPTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Root element for the description of a single BSW module or BSW cluster.
In case it describes a BSW module, the short name of this element equals the name of the BSW module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:BSW-MODULE-DESCRIPTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-MODULE-DESCRIPTION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-MODULE-DESCRIPTION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BswBehavior::BswModuleEntity -->
  <xsd:group name="BSW-MODULE-ENTITY">
    <xsd:annotation>
      <xsd:documentation>Specifies the smallest code fragment which can be described for a BSW module or cluster within AUTOSAR.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTIVATION-POINT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ACTIVATION-POINT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:BSW-INTERNAL-TRIGGER-OCCURED-EVENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CALLED-ENTRY-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CALLED-ENTRY-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CAN-ENTER-EXCLUSIVE-AREA-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-ENTER-EXCLUSIVE-AREA-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:EXCLUSIVE-AREA--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="IMPLEMENTED-ENTRY-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ISSUED-TRIGGER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ISSUED-TRIGGER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MANAGED-MODE-GROUP-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MANAGED-MODE-GROUP-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswModuleEntity -->
  <xsd:complexType name="BSW-MODULE-ENTITY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the smallest code fragment which can be described for a BSW module or cluster within AUTOSAR.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-MODULE-ENTITY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-MODULE-ENTITY--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-INTERRUPT-ENTITY"/>
      <xsd:enumeration value="BSW-MODULE-ENTITY"/>
      <xsd:enumeration value="BSW-SCHEDULABLE-ENTITY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BswInterfaces::BswModuleEntry -->
  <xsd:group name="BSW-MODULE-ENTRY">
    <xsd:annotation>
      <xsd:documentation>This class represents a single API entry (C-function prototype) into the BSW module or cluster.

The name of the C-function is equal to the short name of this element with one exception: In case of multiple instances of a module on the same CPU, special rules for "infixes" apply, see description of class BswImplementation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CALL-TYPE" type="AR:BSW-CALL-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>the type of call associated with this service</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXECUTION-CONTEXT" type="AR:BSW-EXECUTION-CONTEXT" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the excution context which is required (in case of entries into this module) or guaranteed (in case of entries called from this module) for this service.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IS-SYNCHRONOUS" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>true: This calls a synchronous service, i.e. the service is completed when the call returns.
false: The service (on semantical level) may not be complete when the call returns.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ROLE" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the role of the entry in the given context. It shall be equal to the standardized name of the service call, especially in cases where no ServiceIdentifier is specified, e.g. for callbacks. Note the the ShortName is not always sufficient because it maybe vendor specific (e.g. for callbacks which can have more than one instance).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SERVICE-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Refers to the service identifier of the Standardized Interfaces of AUTOSAR basic software.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswInterfaces::BswModuleEntry -->
  <xsd:complexType name="BSW-MODULE-ENTRY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents a single API entry (C-function prototype) into the BSW module or cluster.

The name of the C-function is equal to the short name of this element with one exception: In case of multiple instances of a module on the same CPU, special rules for "infixes" apply, see description of class BswImplementation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-SERVICE"/>
      <xsd:group ref="AR:BSW-MODULE-ENTRY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-MODULE-ENTRY--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-MODULE-ENTRY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Timing::BswModuleTiming -->
  <xsd:group name="BSW-MODULE-TIMING">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints for the BswBehavior of one BSW Module. Thereby, for each BswBehavior a separate timing can be specified.

A constraint defined at this level holds true for all Implementations of that BswBehavior.

TimingDescriptions aggregated by BswModuleTiming are restricted to event chains referring to events which are derived from the class TDEventBswBehavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BEHAVIOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-INTERNAL-BEHAVIOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::BswModuleTiming -->
  <xsd:complexType name="BSW-MODULE-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints for the BswBehavior of one BSW Module. Thereby, for each BswBehavior a separate timing can be specified.

A constraint defined at this level holds true for all Implementations of that BswBehavior.

TimingDescriptions aggregated by BswModuleTiming are restricted to event chains referring to events which are derived from the class TDEventBswBehavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TIMING"/>
      <xsd:group ref="AR:BSW-MODULE-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BswBehavior::BswSchedulableEntity -->
  <xsd:group name="BSW-SCHEDULABLE-ENTITY">
    <xsd:annotation>
      <xsd:documentation>BSW module entity, which is designed for control by the BSW Scheduler. It implements a so-called "main" function.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswSchedulableEntity -->
  <xsd:complexType name="BSW-SCHEDULABLE-ENTITY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>BSW module entity, which is designed for control by the BSW Scheduler. It implements a so-called "main" function.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-MODULE-ENTITY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="BSW-SCHEDULABLE-ENTITY--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-SCHEDULABLE-ENTITY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BswBehavior::BswTimingEvent -->
  <xsd:group name="BSW-TIMING-EVENT">
    <xsd:annotation>
      <xsd:documentation>A recurring BswEvent driven by a time period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PERIOD" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Requirement for the time period (in seconds) by which this event is triggered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BswBehavior::BswTimingEvent -->
  <xsd:complexType name="BSW-TIMING-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A recurring BswEvent driven by a time period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BSW-EVENT"/>
      <xsd:group ref="AR:BSW-TIMING-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::Buffer -->
  <xsd:group name="BUFFER">
    <xsd:annotation>
      <xsd:documentation>Description of a  buffer. It is used to describe input and output buffers.
Buffers can also be configurable direction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NUMBER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The amount of buffers with the attributes size and type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The size of the Buffer.
Unit: Byte</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPE" type="AR:COMMUNICATION-DIRECTION-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Either input, output or configurable buffer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::Buffer -->
  <xsd:complexType name="BUFFER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Description of a  buffer. It is used to describe input and output buffers.
Buffers can also be configurable direction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BUFFER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EventTriggeringConstraint::BurstPatternEventTriggering -->
  <xsd:group name="BURST-PATTERN-EVENT-TRIGGERING">
    <xsd:sequence>
      <xsd:element name="MAX-NUMBER-OF-OCCURRENCES" type="AR:NUMERICAL-VALUE" minOccurs="0"/>
      <xsd:element name="MINIMUM-INTER-ARRIVAL-TIME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PATTERN-LENGTH-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EventTriggeringConstraint::BurstPatternEventTriggering -->
  <xsd:complexType name="BURST-PATTERN-EVENT-TRIGGERING" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:EVENT-TRIGGERING-CONSTRAINT"/>
      <xsd:group ref="AR:BURST-PATTERN-EVENT-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::BusTermination -->
  <xsd:group name="BUS-TERMINATION">
    <xsd:annotation>
      <xsd:documentation>In order to avoid signal reflection and oscillation of the Technical Signal represen-tation the impedance on communication lines have to be defined and matched at the signal destination and the signal source.
Some examples:
A High-speed CAN network with a twisted pair cable works optimal with an overall impedance of 60 Ohms represented by a 120 Ohm resistor in the ECU at the begin-ning of the network and 120 Ohm in the ECU at the end of a linear network topology.
For Low-speed CAN networks in many cases termination resistors of 820 Ohm each are distributed on several ECUs to get good balance between system scalability and signal integrity in real networks without a fixed network topology. The lower bandwidth can tolerate some impedance mismatch.
For LIN networks recessive termination is used: The inactive bus signal level is defined by resistors tied to a defined voltage level.
An important attribute for communication lines is the presence of a termination resistor and the value of this resistor.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTIVE-SWITCHABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switchable termination describes a technology were the termination resistors can be switched or changed by extra hardware and therefore is under control of software. Main scope of a switchable termination is to adopt the termination of an individual ECU to the network topology of a specific car, e. g modules for extra car options can use this method to be incorporated in a wide range of different car types. The active termination is described by the values for each termination value. E.g. 120, 820, 12k. No termination is represented by values greater than 100 k. The attributes value and switchable are exclusive to each other.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CHOKE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>To improve the signal integrity on communication busses with a differential electrical signal representation on the physical layer, common mode chokes are used. They suppress common mode DC noise on CAN, FlexRay and Ethernet networks. Depending on the network topology common mode chokes of an ECU have to be taken in to account when adding ECUs to a network during design phase. Typically chokes are used on CAN, FlexRay, LVDS.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EMC-FILTER" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>To improve the EMC behaviour of communication busses common dedicated EMC Filters are used. They suppress frequencies outside the range, which is needed for the communication of the specific bus
E.g. some small capacitors in parallel to ground, resistors and inductivities in series are added to the bus lines in order to prevent the higher harmonics stimulated by the communication on the network
The information about the termination is used with in the system configuration process, where the placement of an ECU within a car architecture is generated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SPLIT" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describe a technology were the termination is split in to individual resistors with a  capacitive coupling to ground. This technology improves the signal quality.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VALUE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describe the nominal Value of the termination resistor at the ECU as seen from the communication network.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::BusTermination -->
  <xsd:complexType name="BUS-TERMINATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>In order to avoid signal reflection and oscillation of the Technical Signal represen-tation the impedance on communication lines have to be defined and matched at the signal destination and the signal source.
Some examples:
A High-speed CAN network with a twisted pair cable works optimal with an overall impedance of 60 Ohms represented by a 120 Ohm resistor in the ECU at the begin-ning of the network and 120 Ohm in the ECU at the end of a linear network topology.
For Low-speed CAN networks in many cases termination resistors of 820 Ohm each are distributed on several ECUs to get good balance between system scalability and signal integrity in real networks without a fixed network topology. The lower bandwidth can tolerate some impedance mismatch.
For LIN networks recessive termination is used: The inactive bus signal level is defined by resistors tied to a defined voltage level.
An important attribute for communication lines is the presence of a termination resistor and the value of this resistor.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:BUS-TERMINATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::BusspecificNmEcu -->
  <xsd:group name="BUSSPECIFIC-NM-ECU">
    <xsd:annotation>
      <xsd:documentation>Busspecific NmEcu attributes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class ByteOrder::ByteOrder -->
  <xsd:group name="BYTE-ORDER">
    <xsd:annotation>
      <xsd:documentation>This element specifies the byte order of the parent element. The byte order is defined with the attribute TYPE. Possible values are:

* MOST-SIGNIFICANT-BYTE-FIRST

* MOST-SIGNIFICANT-BYTE-LAST</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="BYTE-ORDER";msr.id="type__BYTE-ORDER_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONTENT" type="AR:BYTE-ORDER-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ByteOrder::ByteOrder -->
  <xsd:complexType name="BYTE-ORDER">
    <xsd:annotation>
      <xsd:documentation>This element specifies the byte order of the parent element. The byte order is defined with the attribute TYPE. Possible values are:

* MOST-SIGNIFICANT-BYTE-FIRST

* MOST-SIGNIFICANT-BYTE-LAST</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="BYTE-ORDER";msr.id="type__BYTE-ORDER_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="AR:BYTE-ORDER-ENUM">
        <xsd:attributeGroup ref="AR:AR-OBJECT"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- element group for class Peripherals::CCU -->
  <xsd:group name="CCU">
    <xsd:annotation>
      <xsd:documentation>The CCU is a special kind of a timer, which has the capability of counting and comparing external signals. The timer is equipped with some extra registers and comparators in order to measure time or frequency.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE" type="AR:CCU-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A Capture and Compare peripheral can be configured to operate either in capture or compare mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CCU -->
  <xsd:complexType name="CCU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The CCU is a special kind of a timer, which has the capability of counting and comparing external signals. The timer is equipped with some extra registers and comparators in order to measure time or frequency.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:GENERAL-PURPOSE-TIMER"/>
      <xsd:group ref="AR:CCU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CanTopology::CanCluster -->
  <xsd:group name="CAN-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>CAN bus specific cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class CanTopology::CanCluster -->
  <xsd:complexType name="CAN-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>CAN bus specific cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CanTopology::CanCommunicationController -->
  <xsd:group name="CAN-COMMUNICATION-CONTROLLER">
    <xsd:annotation>
      <xsd:documentation>CAN bus specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYNC-JUMP-WIDTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of quanta in the Synchronization Jump Width, SJW</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-SEG-0" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of quanta before the sampling point</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-SEG-1" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of quanta after the sampling point</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CanTopology::CanCommunicationController -->
  <xsd:complexType name="CAN-COMMUNICATION-CONTROLLER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>CAN bus specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CAN-COMMUNICATION-CONTROLLER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CanCommunication::CanFrameTriggering -->
  <xsd:group name="CAN-FRAME-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>CAN specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ABSOLUTELY-SCHEDULED-TIMINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TTCAN-ABSOLUTELY-SCHEDULED-TIMING" type="AR:TTCAN-ABSOLUTELY-SCHEDULED-TIMING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CAN-ADDRESSING-MODE" type="AR:CAN-ADRESSING-MODE-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The CAN protocol supports two types of frame formats. The standard frame format uses 11-bit identifiers and is defined in the CAN specification 2.0 A. Additionally the extended frame format allows 29-bit identifiers and is defined in the CAN specification 2.0 B.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IDENTIFIER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>To describe a frames identifier on the communication system, usualy with a fixed identifierValue.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CanCommunication::CanFrameTriggering -->
  <xsd:complexType name="CAN-FRAME-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>CAN specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME-TRIGGERING"/>
      <xsd:group ref="AR:CAN-FRAME-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::CanNmCluster -->
  <xsd:group name="CAN-NM-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>Can specific NmCluster attributes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-BUSLOAD-REDUCTION-ACTIVE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>It determines if bus load reduction for the respective CanNm channel is active or not.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-CBV-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the position of the control bit vector within the NM PDU (Byte positon).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-CHANNEL-ACTIVE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This switch determines if the respective CanNm channel is active or not. Indicates whether a particular CanNm channel shall be initialized (TRUE) or not (FALSE).
If this parameter is set to FALSE the respective NM instance shall not be used during runtime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-MSG-CYCLE-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Period of a CanNm message in seconds. It determines the periodic rate in the periodic transmission mode with bus load reduction and is the basis for transmit scheduling in the periodic transmission mode without bus load reduction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NETWORK-TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Network Timeout for CanNm PDUs in seconds
It denotes the time how long the CanNm shall stay in the Network Mode before transition into Prepare Bus-Sleep Mode shall take place.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NID-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the byte position of the source node identifier within the NM PDU.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-USER-DATA-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the length of the user data contained in the NM Pdu.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-WAIT-BUS-SLEEP-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Timeout for bus calm down phase in seconds. It denotes the time how long the CanNm shall stay in the Prepare Bus-Sleep Mode before transition into Bus-Sleep Mode shall take place.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::CanNmCluster -->
  <xsd:complexType name="CAN-NM-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Can specific NmCluster attributes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-CLUSTER"/>
      <xsd:group ref="AR:CAN-NM-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="CAN-NM-CLUSTER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-NM-CLUSTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class NetworkManagement::CanNmClusterCoupling -->
  <xsd:group name="CAN-NM-CLUSTER-COUPLING">
    <xsd:annotation>
      <xsd:documentation>CAN attributes that are valid for each of the referenced (coupled) CAN clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COUPLED-CLUSTER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COUPLED-CLUSTER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:CAN-NM-CLUSTER--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-BUSLOAD-REDUCTION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables busload reduction support</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-IMMEDIATE-RESTART-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the asynchronous transmission of a CanNm PDU upon bus-communication request in Prepare-Bus-Sleep mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::CanNmClusterCoupling -->
  <xsd:complexType name="CAN-NM-CLUSTER-COUPLING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>CAN attributes that are valid for each of the referenced (coupled) CAN clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CAN-NM-CLUSTER-COUPLING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::CanNmEcu -->
  <xsd:group name="CAN-NM-ECU">
    <xsd:sequence>
      <xsd:element name="NM-REPEAT-MSG-INDICATION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enable/disable the notification that a RepeatMessageRequest bit has been received.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::CanNmEcu -->
  <xsd:complexType name="CAN-NM-ECU" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:CAN-NM-ECU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::CanNmNode -->
  <xsd:group name="CAN-NM-NODE">
    <xsd:annotation>
      <xsd:documentation>CAN specific NM Node attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-MSG-CYCLE-OFFSET" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Node specific time offset in the periodic transmission node. It determines the start delay of the transmission. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-MSG-REDUCED-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Node specific bus cycle time in the periodic transmission mode with bus load reduction. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::CanNmNode -->
  <xsd:complexType name="CAN-NM-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>CAN specific NM Node attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-NODE"/>
      <xsd:group ref="AR:CAN-NM-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::CanTpConfig -->
  <xsd:group name="CAN-TP-CONFIG">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one CAN TP Configuration. 

One CanTpConfig element shall be created for each CAN Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TP-ADDRESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-ADDRESS" type="AR:TP-ADDRESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-CONNECTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-TP-CONNECTION" type="AR:CAN-TP-CONNECTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-ECUS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-ECU" type="AR:TP-ECU"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-NODES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-TP-NODE" type="AR:CAN-TP-NODE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::CanTpConfig -->
  <xsd:complexType name="CAN-TP-CONFIG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one CAN TP Configuration. 

One CanTpConfig element shall be created for each CAN Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CAN-TP-CONFIG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::CanTpConnection -->
  <xsd:group name="CAN-TP-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>A CanTpConnection represents an internal path for the transmission or reception of a Pdu via CanTp and describes the the sender and the receiver of this particular communication. The CanTp module routes a Pdu through the connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ADDRESSING-FORMAT" type="AR:CAN-TP-ADDRESSING-FORMAT-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Declares which communication addressing mode is supported.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CHANNEL-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The id of the channel. The value shall be unique for each channel.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATA-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This specifies the message length for the particular channel (in bytes).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATA-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DATA-N-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FLOW-CONTROL-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FLOW-CONTROL-N-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MAX-BLOCK-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum number of N-PDUs the CanTp receiver allows the sender to send, before waiting for an authorization to continue transmission of the following N-PDUs. For further details on this parameter value see ISO 15765-2 specification.

Note: For reasons of buffer length, the CAN Transport Layer can adapt the BS value within the limit of this maximum BS</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MULTICAST-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PADDING-ACTIVATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This specifies wheter or not Sfs, FCs and the last CF shall be padded to 8 bytes length in case it contains less payload.

true:
The N-PDU received uses padding for SF, FC and the last CF. (N-PDU length is always 8 bytes)

false:
The N-PDU received does not use padding for SF, CF and the last CF. (N-PDU length is dynamic)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RECEIVER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RECEIVER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:CAN-TP-NODE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TIMEOUT-BS" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the timout for waiting for an FC or AF on the sender side in an 1:1 connection. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-CR" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the timeout value for waiting for a CF or FF-x (in case of retry) after receiving the last CF or after sending an FC or AF on the receiver side. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TP-SDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRANSMIT-CANCELLATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>With this switch Transmit Cancellation can be turned on or off for this channel.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TRANSMITTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CAN-TP-NODE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::CanTpConnection -->
  <xsd:complexType name="CAN-TP-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A CanTpConnection represents an internal path for the transmission or reception of a Pdu via CanTp and describes the the sender and the receiver of this particular communication. The CanTp module routes a Pdu through the connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CAN-TP-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::CanTpNode -->
  <xsd:group name="CAN-TP-NODE">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONNECTOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MAX-FC-WAIT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute defines the maximum number of flow control PDUs that can be consecutively be transmitted by a receiver.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ST-MIN" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the minimum amount of time (in seconds) between two succeeding CFs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-AR" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute states the timeout between the PDU transmit request of the Transport Layer to the FlexRay Interface and the corresponding confirmation of the FlexRay Interface on the receiver side (for FC or AF). Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-AS" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute states the timeout between the PDU transmit request for the first PDU of the group used in the current connection of the Transport Layer to the Can Interface and the corresponding confirmation of the Can Interface (when having sent the last PDU of the group used in this connection) on the sender side (SF-x, FF-x, CF or FC (in case of Transmit Cancellation)). Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TP-ADDRESS-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::CanTpNode -->
  <xsd:complexType name="CAN-TP-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CAN-TP-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="CAN-TP-NODE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-TP-NODE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BlockElements::Caption -->
  <xsd:group name="CAPTION">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class BlockElements::Caption -->
  <xsd:complexType name="CAPTION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class VariantHandling::CertifiedSystemconstValueSet -->
  <xsd:group name="CERTIFIED-SYSTEMCONST-VALUE-SET">
    <xsd:annotation>
      <xsd:documentation>This specifies a set of certified Variants. It exrpesses, that the collection of CollectableElements is certified to be consistent for the given set of system constant values.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CERTIFIED-ELEMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CERTIFIED-ELEMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COLLECTABLE-ELEMENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-SYSTEMCONSTANT-VALULE-SET-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-SYSTEMCONSTANT-VALULE-SET-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:SW-SYSTEMCONSTANT-VALUE-SET--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::CertifiedSystemconstValueSet -->
  <xsd:complexType name="CERTIFIED-SYSTEMCONST-VALUE-SET" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This specifies a set of certified Variants. It exrpesses, that the collection of CollectableElements is certified to be consistent for the given set of system constant values.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CERTIFIED-SYSTEMCONST-VALUE-SET"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Chapters::Chapter -->
  <xsd:group name="CHAPTER">
    <xsd:annotation>
      <xsd:documentation>Use &lt;chapter&gt; , to create a chapter structure.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:CHAPTER-MODEL"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Chapters::Chapter -->
  <xsd:attributeGroup name="CHAPTER">
    <xsd:annotation>
      <xsd:documentation>Use &lt;chapter&gt; , to create a chapter structure.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="BREAK" type="AR:CHAPTER-ENUM-BREAK"/>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>This specifies an entry point in an online help system to be linked with the parent class. The syntax must be defined by the applied help system resp. help system generator.
Maybe it is a concatenated Identifier, but as of now we leave it as an arbitrary string.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="CHAPTER_TYPE__CHAPTER_TYPE__HELP-ENTRY";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class Chapters::Chapter -->
  <xsd:complexType name="CHAPTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;chapter&gt; , to create a chapter structure.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CHAPTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
    <xsd:attributeGroup ref="AR:CHAPTER"/>
  </xsd:complexType>
  <!-- element group for class Chapters::ChapterContent -->
  <xsd:group name="CHAPTER-CONTENT">
    <xsd:annotation>
      <xsd:documentation>This class represents the content which is directly in a chapter. It is basically the same as the one in a Topic but might have additional complex structures (e.g. Synopsis)</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="special__NCOI-1_complexParagraphs_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:group ref="AR:TOPIC-CONTENT-OR-MSR-QUERY"/>
        </xsd:choice>
        <xsd:element name="SYN-SYNOPSIS" type="AR:SYN-SYNOPSIS" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="PRMS" type="AR:PRMS" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class Chapters::ChapterContent -->
  <xsd:complexType name="CHAPTER-CONTENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents the content which is directly in a chapter. It is basically the same as the one in a Topic but might have additional complex structures (e.g. Synopsis)</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="special__NCOI-1_complexParagraphs_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:CHAPTER-CONTENT"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Chapters::ChapterModel -->
  <xsd:group name="CHAPTER-MODEL">
    <xsd:annotation>
      <xsd:documentation>This is the basic content model of a chapter except the Chapter title. This can be utilized in general chapters as well as in predfined chapters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:CHAPTER-CONTENT"/>
      </xsd:choice>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:TOPIC-OR-MSR-QUERY"/>
      </xsd:choice>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:CHAPTER-OR-MSR-QUERY"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Chapters::ChapterModel -->
  <xsd:complexType name="CHAPTER-MODEL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is the basic content model of a chapter except the Chapter title. This can be utilized in general chapters as well as in predfined chapters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CHAPTER-MODEL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Chapters::ChapterOrMsrQuery -->
  <xsd:group name="CHAPTER-OR-MSR-QUERY">
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="CHAPTER" type="AR:CHAPTER" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="MSR-QUERY-CHAPTER" type="AR:MSR-CHAPTER-QUERY" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class Chapters::ChapterOrMsrQuery -->
  <xsd:complexType name="CHAPTER-OR-MSR-QUERY" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:CHAPTER-OR-MSR-QUERY"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::ChoiceContainerDef -->
  <xsd:group name="CHOICE-CONTAINER-DEF">
    <xsd:annotation>
      <xsd:documentation>Used to define configuration containers that provide a choice between several ParamConfContainerDef. But in the actual ECU Configuration Description only one instance from the choice list will be present (depending on the multiplicites given).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHOICES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAM-CONF-CONTAINER-DEF" type="AR:PARAM-CONF-CONTAINER-DEF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ChoiceContainerDef -->
  <xsd:complexType name="CHOICE-CONTAINER-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Used to define configuration containers that provide a choice between several ParamConfContainerDef. But in the actual ECU Configuration Description only one instance from the choice list will be present (depending on the multiplicites given).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:CONTAINER-DEF"/>
      <xsd:group ref="AR:CHOICE-CONTAINER-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::ChoiceReferenceParamDef -->
  <xsd:group name="CHOICE-REFERENCE-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Specify alternative references where in the ECU Configuration description only one of the specified references will actually be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESTINATION-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DESTINATION-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:PARAM-CONF-CONTAINER-DEF--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ChoiceReferenceParamDef -->
  <xsd:complexType name="CHOICE-REFERENCE-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specify alternative references where in the ECU Configuration description only one of the specified references will actually be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CHOICE-REFERENCE-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Communication::ClientComSpec -->
  <xsd:group name="CLIENT-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Client-specific communication attributes (RPortPrototype typed by ClientServerInterface).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::ClientComSpec -->
  <xsd:complexType name="CLIENT-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Client-specific communication attributes (RPortPrototype typed by ClientServerInterface).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientIdMapping -->
  <xsd:group name="CLIENT-ID-MAPPING">
    <xsd:annotation>
      <xsd:documentation>In case of a server on one ECU with multiple clients on other ECUs, the client server communication shall use different unique COM signals and signal groups for each client to allow the identification of the client associated with each system signal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientIdMapping -->
  <xsd:complexType name="CLIENT-ID-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>In case of a server on one ECU with multiple clients on other ECUs, the client server communication shall use different unique COM signals and signal groups for each client to allow the identification of the client associated with each system signal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-ID-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerArrayElementMapping -->
  <xsd:group name="CLIENT-SERVER-ARRAY-ELEMENT-MAPPING">
    <xsd:annotation>
      <xsd:documentation>The ArrayElement may be a primitive one or a composite one. If the element is primitive, it will be mapped to the "SystemSignal" (multiplicity 1).
If the element is composite, there will be no mapping to the "SystemSignal" (multiplicity 0). In this case the "ArrayElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive array element is mapped the indexed array element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPLEX-TYPE-MAPPING" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="CLIENT-SERVER-ARRAY-TYPE-MAPPING" type="AR:CLIENT-SERVER-ARRAY-TYPE-MAPPING"/>
            <xsd:element name="CLIENT-SERVER-RECORD-TYPE-MAPPING" type="AR:CLIENT-SERVER-RECORD-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INDEXED-ARRAY-ELEMENT" type="AR:INDEXED-ARRAY-ELEMENT" minOccurs="0"/>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientServerArrayElementMapping -->
  <xsd:complexType name="CLIENT-SERVER-ARRAY-ELEMENT-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ArrayElement may be a primitive one or a composite one. If the element is primitive, it will be mapped to the "SystemSignal" (multiplicity 1).
If the element is composite, there will be no mapping to the "SystemSignal" (multiplicity 0). In this case the "ArrayElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive array element is mapped the indexed array element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-SERVER-ARRAY-ELEMENT-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerArrayTypeMapping -->
  <xsd:group name="CLIENT-SERVER-ARRAY-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is an Array, the "ArrayTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARRAY-ELEMENT-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-SERVER-ARRAY-ELEMENT-MAPPING" type="AR:CLIENT-SERVER-ARRAY-ELEMENT-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientServerArrayTypeMapping -->
  <xsd:complexType name="CLIENT-SERVER-ARRAY-TYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is an Array, the "ArrayTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-SERVER-COMPOSITE-TYPE-MAPPING"/>
      <xsd:group ref="AR:CLIENT-SERVER-ARRAY-TYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerCompositeTypeMapping -->
  <xsd:group name="CLIENT-SERVER-COMPOSITE-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Two mappings exist for the composite data types: "ArrayTypeMapping" and "RecordTypeMapping".
In both, a primitive datatype will be mapped to a system signal. 

But it is also possible to combine the arrays and the records, so that an "array" could be an element of a "record" and in the same manner a "record" could be an element of an "array". Nesting these data types is also possible.

If an element of a composite data type is again a composite one, the "CompositeTypeMapping" element will be used one more time (aggregation between the ArrayElementMapping and CompositeTypeMapping or aggregation between the RecordElementMapping and CompositeTypeMapping).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARGUMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ARGUMENT-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class PortInterface::ClientServerInterface -->
  <xsd:group name="CLIENT-SERVER-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>A client/server interface declares a number of operations that can be invoked on a server by a client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OPERATION-PROTOTYPE" type="AR:OPERATION-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="POSSIBLE-ERRORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="APPLICATION-ERROR" type="AR:APPLICATION-ERROR"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::ClientServerInterface -->
  <xsd:complexType name="CLIENT-SERVER-INTERFACE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A client/server interface declares a number of operations that can be invoked on a server by a client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:PORT-INTERFACE"/>
      <xsd:group ref="AR:CLIENT-SERVER-INTERFACE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::ClientServerInterfaceMapping -->
  <xsd:group name="CLIENT-SERVER-INTERFACE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named OperationPrototypes in context of two different ClientServerInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OPERATION-PROTOTYPE-MAPPING" type="AR:OPERATION-PROTOTYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::ClientServerInterfaceMapping -->
  <xsd:complexType name="CLIENT-SERVER-INTERFACE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named OperationPrototypes in context of two different ClientServerInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CLIENT-SERVER-INTERFACE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerPrimitiveTypeMapping -->
  <xsd:group name="CLIENT-SERVER-PRIMITIVE-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of an argument with a primitive datatype to a signal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARGUMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ARGUMENT-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SYSTEM-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientServerPrimitiveTypeMapping -->
  <xsd:complexType name="CLIENT-SERVER-PRIMITIVE-TYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Mapping of an argument with a primitive datatype to a signal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-SERVER-PRIMITIVE-TYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerRecordElementMapping -->
  <xsd:group name="CLIENT-SERVER-RECORD-ELEMENT-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of a primitive record element to a SystemSignal. 

If the element is composite, there will be no mapping (multiplicity 0). In this case the "RecordElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive record element is mapped the record element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPLEX-TYPE-MAPPING" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="CLIENT-SERVER-ARRAY-TYPE-MAPPING" type="AR:CLIENT-SERVER-ARRAY-TYPE-MAPPING"/>
            <xsd:element name="CLIENT-SERVER-RECORD-TYPE-MAPPING" type="AR:CLIENT-SERVER-RECORD-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RECORD-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-RECORD-ELEMENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientServerRecordElementMapping -->
  <xsd:complexType name="CLIENT-SERVER-RECORD-ELEMENT-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Mapping of a primitive record element to a SystemSignal. 

If the element is composite, there will be no mapping (multiplicity 0). In this case the "RecordElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive record element is mapped the record element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-SERVER-RECORD-ELEMENT-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerRecordTypeMapping -->
  <xsd:group name="CLIENT-SERVER-RECORD-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is a Record, the "RecordTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="RECORD-ELEMENT-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-SERVER-RECORD-ELEMENT-MAPPING" type="AR:CLIENT-SERVER-RECORD-ELEMENT-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientServerRecordTypeMapping -->
  <xsd:complexType name="CLIENT-SERVER-RECORD-TYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is a Record, the "RecordTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CLIENT-SERVER-COMPOSITE-TYPE-MAPPING"/>
      <xsd:group ref="AR:CLIENT-SERVER-RECORD-TYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::ClientServerToSignalGroupMapping -->
  <xsd:group name="CLIENT-SERVER-TO-SIGNAL-GROUP-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of client server operation arguments to signals of a signal group. Arguments with a primitive datatype will be mapped via the "ClientServerPrimitiveTypeMapping" element. 
Arguments with composite datatypes will be mapped via the "CompositeTypeMapping" element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="APPLICATION-ERRORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="APPLICATION-ERROR-MAPPING" type="AR:APPLICATION-ERROR-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CLIENT-ID" type="AR:CLIENT-ID-MAPPING" minOccurs="0"/>
      <xsd:element name="COMPOSITE-TYPE-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-SERVER-ARRAY-TYPE-MAPPING" type="AR:CLIENT-SERVER-ARRAY-TYPE-MAPPING"/>
            <xsd:element name="CLIENT-SERVER-RECORD-TYPE-MAPPING" type="AR:CLIENT-SERVER-RECORD-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EMPTY-SIGNAL" type="AR:EMPTY-SIGNAL-MAPPING" minOccurs="0"/>
      <xsd:element name="MAPPED-OPERATION" type="AR:OPERATION-IN-SYSTEM-INSTANCE-REF" minOccurs="0"/>
      <xsd:element name="PRIMITIVE-TYPE-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-SERVER-PRIMITIVE-TYPE-MAPPING" type="AR:CLIENT-SERVER-PRIMITIVE-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUEST-GROUP-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL-GROUP--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RESPONSE-GROUP-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL-GROUP--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SEQUENCE-COUNTER" type="AR:SEQUENCE-COUNTER-MAPPING" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::ClientServerToSignalGroupMapping -->
  <xsd:complexType name="CLIENT-SERVER-TO-SIGNAL-GROUP-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Mapping of client server operation arguments to signals of a signal group. Arguments with a primitive datatype will be mapped via the "ClientServerPrimitiveTypeMapping" element. 
Arguments with composite datatypes will be mapped via the "CompositeTypeMapping" element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DATA-MAPPING"/>
      <xsd:group ref="AR:CLIENT-SERVER-TO-SIGNAL-GROUP-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::Clock -->
  <xsd:group name="CLOCK">
    <xsd:annotation>
      <xsd:documentation>The clock delivers the time for the PU and other HW Elements on the ECU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ADJUSTABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the clock is adjustable from software.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CLOCK-JITTER" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The short-term deviation of the nominal frequency to the real frequency. Jitter is influenced by the circuitry itself, voltage spikes etc. Jitter is critical for communication elements. PLL need/generate jitter for operation. Therefore communication interfaces should operate from an oscillator e.g. quartz directly or use only divider, not a PLL, as clock source. Using PLL for communication interfaces is a very common source for problems in ECU test and integration.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CLOCK-STARTUP-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The time the clock generation needs to deliver a stable and valid signal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CLOCK-TOLERANCE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The long-term deviation of the nominal frequency to the real frequency. Influenced by manufacturing, layout, temperature, external components and voltage. Tolerances are critical for timer application and time synchronisation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="FREQUENCY" type="AR:FREQUENCY-RANGE" minOccurs="0"/>
      <xsd:element name="OSCILLATOR-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OSCILLATOR-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:OSCILLATOR--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TYPE" type="AR:CLOCK-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the type of the clock signal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::Clock -->
  <xsd:complexType name="CLOCK" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The clock delivers the time for the PU and other HW Elements on the ECU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:ECU-ELECTRONICS"/>
      <xsd:group ref="AR:CLOCK"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="CLOCK--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CLOCK"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Implementation::Code -->
  <xsd:group name="CODE">
    <xsd:annotation>
      <xsd:documentation>A generic code descriptor. The type of the code (source or object) is defined via the category attribute of the associated engineering objects.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARTIFACT-DESCRIPTORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ISSUE-ENGINEERING-OBJECT" type="AR:ISSUE-ENGINEERING-OBJECT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Implementation::Code -->
  <xsd:complexType name="CODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A generic code descriptor. The type of the code (source or object) is defined via the category attribute of the associated engineering objects.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ElementCollection::CollectableElement -->
  <xsd:group name="COLLECTABLE-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>This Metaclass specifies the ability to be part of an autosar collection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="COLLECTABLE-ELEMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ADC"/>
      <xsd:enumeration value="AR-PACKAGE"/>
      <xsd:enumeration value="ACTUATOR-HW"/>
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="BSW-IMPLEMENTATION"/>
      <xsd:enumeration value="BSW-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="BSW-MODULE-DESCRIPTION"/>
      <xsd:enumeration value="BSW-MODULE-ENTRY"/>
      <xsd:enumeration value="BSW-MODULE-TIMING"/>
      <xsd:enumeration value="CCU"/>
      <xsd:enumeration value="CAN-CLUSTER"/>
      <xsd:enumeration value="CAN-TP-CONFIG"/>
      <xsd:enumeration value="CERTIFIED-SYSTEMCONST-VALUE-SET"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE"/>
      <xsd:enumeration value="CLOCK"/>
      <xsd:enumeration value="COLLECTION"/>
      <xsd:enumeration value="COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="COMMUNICATION-PERIPHERAL"/>
      <xsd:enumeration value="COMMUNICATION-TRANSCEIVER"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPU-METHOD"/>
      <xsd:enumeration value="CONSTANT-SPECIFICATION"/>
      <xsd:enumeration value="DAC"/>
      <xsd:enumeration value="DATA-CONSTR"/>
      <xsd:enumeration value="DATA-N-PDU"/>
      <xsd:enumeration value="DATA-TYPE-MAPPING-SET"/>
      <xsd:enumeration value="DCM-I-PDU"/>
      <xsd:enumeration value="DIGITAL-IO"/>
      <xsd:enumeration value="DISCRETE-ECU-ELECTRONICS"/>
      <xsd:enumeration value="DISPLAY-HW"/>
      <xsd:enumeration value="DOCUMENTATION"/>
      <xsd:enumeration value="ECU"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="ECU-CONFIGURATION"/>
      <xsd:enumeration value="ECU-INSTANCE"/>
      <xsd:enumeration value="ECU-PARAMETER-DEFINITION"/>
      <xsd:enumeration value="ECU-TIMING"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="FLAT-MAP"/>
      <xsd:enumeration value="FLEXRAY-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-TP-CONFIG"/>
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
      <xsd:enumeration value="FRAME"/>
      <xsd:enumeration value="GATEWAY"/>
      <xsd:enumeration value="HW-CONTAINER"/>
      <xsd:enumeration value="I-PDU-GROUP"/>
      <xsd:enumeration value="I-SIGNAL"/>
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
      <xsd:enumeration value="J-1939-TP-CONFIG"/>
      <xsd:enumeration value="LIN-CLUSTER"/>
      <xsd:enumeration value="LIN-EVENT-TRIGGERED-FRAME"/>
      <xsd:enumeration value="LIN-SPORADIC-FRAME"/>
      <xsd:enumeration value="LIN-TP-CONFIG"/>
      <xsd:enumeration value="LIN-UNCONDITIONAL-FRAME"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP"/>
      <xsd:enumeration value="MODE-INTERFACE"/>
      <xsd:enumeration value="MODULE-CONFIGURATION"/>
      <xsd:enumeration value="MODULE-DEF"/>
      <xsd:enumeration value="MULTIPLEXED-I-PDU"/>
      <xsd:enumeration value="NM-CONFIG"/>
      <xsd:enumeration value="NM-PDU"/>
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
      <xsd:enumeration value="NV-BLOCK-DESCRIPTOR"/>
      <xsd:enumeration value="NV-DATA-INTERFACE"/>
      <xsd:enumeration value="OSCILLATOR"/>
      <xsd:enumeration value="PWD"/>
      <xsd:enumeration value="PWM"/>
      <xsd:enumeration value="PARAMETER-COMPONENT-TYPE"/>
      <xsd:enumeration value="PARAMETER-INTERFACE"/>
      <xsd:enumeration value="PERIPHERAL"/>
      <xsd:enumeration value="PHYSICAL-DIMENSION"/>
      <xsd:enumeration value="PORT-INTERFACE-MAPPING-GROUP"/>
      <xsd:enumeration value="POST-BUILD-VARIANT-CRITERION"/>
      <xsd:enumeration value="POWER-DRIVER-HW-ELEMENT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-ELEMENT"/>
      <xsd:enumeration value="PROCESSING-UNIT"/>
      <xsd:enumeration value="PROVIDED-MEMORY-SEGMENT"/>
      <xsd:enumeration value="PROVIDED-NV-MEMORY-SEGMENT"/>
      <xsd:enumeration value="SENDER-RECEIVER-INTERFACE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SENSOR-HW"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SIGNAL-I-PDU"/>
      <xsd:enumeration value="SOFTWARE-COMPONENT-DOCUMENTATION"/>
      <xsd:enumeration value="SW-ADDR-METHOD"/>
      <xsd:enumeration value="SW-AXIS-TYPE"/>
      <xsd:enumeration value="SW-BASE-TYPE"/>
      <xsd:enumeration value="SW-CLASS-INSTANCE"/>
      <xsd:enumeration value="SW-CODE-SYNTAX"/>
      <xsd:enumeration value="SW-RECORD-LAYOUT"/>
      <xsd:enumeration value="SW-SERVICE"/>
      <xsd:enumeration value="SW-SYSTEMCONST"/>
      <xsd:enumeration value="SW-SYSTEMCONSTANT-VALUE-SET"/>
      <xsd:enumeration value="SWC-IMPLEMENTATION"/>
      <xsd:enumeration value="SWC-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="SWC-TIMING"/>
      <xsd:enumeration value="SYSTEM"/>
      <xsd:enumeration value="SYSTEM-SIGNAL"/>
      <xsd:enumeration value="SYSTEM-SIGNAL-GROUP"/>
      <xsd:enumeration value="SYSTEM-TIMING"/>
      <xsd:enumeration value="TIMER"/>
      <xsd:enumeration value="TRIGGER-INTERFACE"/>
      <xsd:enumeration value="TTCAN-CLUSTER"/>
      <xsd:enumeration value="UNIT"/>
      <xsd:enumeration value="VFB-TIMING"/>
      <xsd:enumeration value="WATCH-DOG"/>
      <xsd:enumeration value="XCP-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ElementCollection::Collection -->
  <xsd:group name="COLLECTION">
    <xsd:annotation>
      <xsd:documentation>This metaclass specifies a collection of elements. A collection can be utilized to express additional aspects for a set of elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ELEMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ELEMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COLLECTABLE-ELEMENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ElementCollection::Collection -->
  <xsd:complexType name="COLLECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This metaclass specifies a collection of elements. A collection can be utilized to express additional aspects for a set of elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COLLECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class OasisExchangeTable::Colspec -->
  <xsd:group name="COLSPEC">
    <xsd:annotation>
      <xsd:documentation>Use &lt;colspec&gt; , to insert and specify a column in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__COLSPEC_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class OasisExchangeTable::Colspec -->
  <xsd:complexType name="COLSPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;colspec&gt; , to insert and specify a column in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__COLSPEC_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ComMgrUserNeeds -->
  <xsd:group name="COM-MGR-USER-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Communication Manager for one "user".</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAX-COMM-MODE" type="AR:MAX-COMM-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum communication mode requested by this ComM user</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ComMgrUserNeeds -->
  <xsd:complexType name="COM-MGR-USER-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Communication Manager for one "user".</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COM-MGR-USER-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreTopology::CommConnectorPort -->
  <xsd:group name="COMM-CONNECTOR-PORT">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port. 

The ECU communication relationships shall be fully described on each level (signal, Pdu and frame). For each signal, Pdu or Frame that is transmitted or received by the ECU an association between a SignalPort, IPduPort or FramePort with the corresponding Triggering shall be created.

It is recommended to use one SignalPort, one PduPort and one FramePort per ECU for all Signals, Pdus, Frames that are received or transmitted. If different timeouts for signals need to be specified several SignalPorts may be created.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-DIRECTION" type="AR:COMMUNICATION-DIRECTION-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>communication Direction of the Connector Port (input or output Port).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUCParameterDefTemplate::CommonConfigurationAttributes -->
  <xsd:group name="COMMON-CONFIGURATION-ATTRIBUTES">
    <xsd:annotation>
      <xsd:documentation>Attributes used by Configuration Parameters as well as References.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONFIGURATION-CLASS-AFFECTION" type="AR:CONFIGURATION-CLASS-AFFECTION" minOccurs="0"/>
      <xsd:element name="IMPLEMENTATION-CONFIG-CLASSES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="IMPLEMENTATION-CONFIG-CLASS" type="AR:IMPLEMENTATION-CONFIG-CLASS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ORIGIN" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>String specifying if this configuration parameter is an AUTOSAR standardized configuration parameter or if the parameter is hardware- or vendor-specific.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="COMMON-CONFIGURATION-ATTRIBUTES--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ADD-INFO-PARAM-DEF"/>
      <xsd:enumeration value="BOOLEAN-PARAM-DEF"/>
      <xsd:enumeration value="CHOICE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="ENUMERATION-PARAM-DEF"/>
      <xsd:enumeration value="FLOAT-PARAM-DEF"/>
      <xsd:enumeration value="FOREIGN-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="FUNCTION-NAME-DEF"/>
      <xsd:enumeration value="INSTANCE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="INTEGER-PARAM-DEF"/>
      <xsd:enumeration value="LINKER-SYMBOL-DEF"/>
      <xsd:enumeration value="MULTILINE-STRING-PARAM-DEF"/>
      <xsd:enumeration value="REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="STRING-PARAM-DEF"/>
      <xsd:enumeration value="SYMBOLIC-NAME-REFERENCE-PARAM-DEF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SignalPaths::CommonSignalPath -->
  <xsd:group name="COMMON-SIGNAL-PATH">
    <xsd:annotation>
      <xsd:documentation>The CommonSignalPath describes that two or more SwcToSwcSignals and/or SwcToSwcOperationArguments must take the same way (Signal Path) in the topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-OPERATION-ARGUMENTS" type="AR:SWC-TO-SWC-OPERATION-ARGUMENTS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNALS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-SIGNAL" type="AR:SWC-TO-SWC-SIGNAL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SignalPaths::CommonSignalPath -->
  <xsd:complexType name="COMMON-SIGNAL-PATH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The CommonSignalPath describes that two or more SwcToSwcSignals and/or SwcToSwcOperationArguments must take the same way (Signal Path) in the topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SIGNAL-PATH-CONSTRAINT"/>
      <xsd:group ref="AR:COMMON-SIGNAL-PATH"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreTopology::CommunicationCluster -->
  <xsd:group name="COMMUNICATION-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>The CommunicationCluster is the main element to describe the topological connection of communicating ECUs.

A cluster describes the ensemble of ECUs, which are linked by a communication medium of arbitrary topology (bus, star, ring, ...). The nodes within the cluster share the same communication protocol, which may be event-triggered, time-triggered or a combination of both.

A CommunicationCluster aggregates one or more physical channels. All physical channels that are aggregated by a communication cluster  are synchronized with each other.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PHYSICAL-CHANNELS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FLEXRAY-PHYSICAL-CHANNEL" type="AR:FLEXRAY-PHYSICAL-CHANNEL"/>
            <xsd:element name="LIN-PHYSICAL-CHANNEL" type="AR:LIN-PHYSICAL-CHANNEL"/>
            <xsd:element name="PHYSICAL-CHANNEL" type="AR:PHYSICAL-CHANNEL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROTOCOL-NAME" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The name of the protocol used.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROTOCOL-VERSION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The version of the protocol used.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SPEED" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>channels speed in bits per second</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreTopology::CommunicationCluster -->
  <xsd:complexType name="COMMUNICATION-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The CommunicationCluster is the main element to describe the topological connection of communicating ECUs.

A cluster describes the ensemble of ECUs, which are linked by a communication medium of arbitrary topology (bus, star, ring, ...). The nodes within the cluster share the same communication protocol, which may be event-triggered, time-triggered or a combination of both.

A CommunicationCluster aggregates one or more physical channels. All physical channels that are aggregated by a communication cluster  are synchronized with each other.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMMUNICATION-CLUSTER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-CLUSTER"/>
      <xsd:enumeration value="COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-CLUSTER"/>
      <xsd:enumeration value="LIN-CLUSTER"/>
      <xsd:enumeration value="TTCAN-CLUSTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreTopology::CommunicationConnector -->
  <xsd:group name="COMMUNICATION-CONNECTOR">
    <xsd:annotation>
      <xsd:documentation>The connection between the referencing ECU and the referenced channel via the referenced controller.

Connectors are used to describe the bus interfaces of the ECUs and to specify the sending/receiving behavior. 

Each CommunicationConnector has a reference to exactly one communicationController. 

The communicationController can be referenced by several CommunicationConnector elements. This is important for the FlexRay Bus. 
FlexRay communicates via two physical channels. But only one controller in an ECU is responsible for both channels. Thus, two connectors (for channel A and for channel B) must reference to the same controller.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHANNEL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PHYSICAL-CHANNEL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMM-CONTROLLER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONTROLLER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-COMM-PORT-INSTANCES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FRAME-PORT" type="AR:FRAME-PORT"/>
            <xsd:element name="I-PDU-PORT" type="AR:I-PDU-PORT"/>
            <xsd:element name="SIGNAL-PORT" type="AR:SIGNAL-PORT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreTopology::CommunicationConnector -->
  <xsd:complexType name="COMMUNICATION-CONNECTOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The connection between the referencing ECU and the referenced channel via the referenced controller.

Connectors are used to describe the bus interfaces of the ECUs and to specify the sending/receiving behavior. 

Each CommunicationConnector has a reference to exactly one communicationController. 

The communicationController can be referenced by several CommunicationConnector elements. This is important for the FlexRay Bus. 
FlexRay communicates via two physical channels. But only one controller in an ECU is responsible for both channels. Thus, two connectors (for channel A and for channel B) must reference to the same controller.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CONNECTOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMMUNICATION-CONNECTOR--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="FLEXRAY-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="LIN-COMMUNICATION-CONNECTOR"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreTopology::CommunicationController -->
  <xsd:group name="COMMUNICATION-CONTROLLER">
    <xsd:annotation>
      <xsd:documentation>The communication controller is a dedicated hardware device by means of which hosts are sending frames to and receiving frames from the communication medium.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class CoreTopology::CommunicationController -->
  <xsd:complexType name="COMMUNICATION-CONTROLLER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The communication controller is a dedicated hardware device by means of which hosts are sending frames to and receiving frames from the communication medium.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMMUNICATION-CONTROLLER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="FLEXRAY-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="LIN-MASTER"/>
      <xsd:enumeration value="LIN-SLAVE"/>
      <xsd:enumeration value="TTCAN-COMMUNICATION-CONTROLLER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUResourceMapping::CommunicationControllerMapping -->
  <xsd:group name="COMMUNICATION-CONTROLLER-MAPPING">
    <xsd:annotation>
      <xsd:documentation>CommunicationControllerMapping specifies the CommunicationPeripheral
hardware (defined in the ECU Resource Template) to realize the specified CommunicationController in a physical topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-CONTROLLER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONTROLLER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMMUNICATION-PERIPHERAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-PERIPHERAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceMapping::CommunicationControllerMapping -->
  <xsd:complexType name="COMMUNICATION-CONTROLLER-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>CommunicationControllerMapping specifies the CommunicationPeripheral
hardware (defined in the ECU Resource Template) to realize the specified CommunicationController in a physical topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:COMMUNICATION-CONTROLLER-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreTopology::CommunicationCycle -->
  <xsd:group name="COMMUNICATION-CYCLE">
    <xsd:annotation>
      <xsd:documentation>The communication cycle where the frame is sent.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class Peripherals::CommunicationFilter -->
  <xsd:group name="COMMUNICATION-FILTER">
    <xsd:annotation>
      <xsd:documentation>Describes the amount and the size of the communication filters. These can be used as acceptance or rejection filters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FILTER-COUNT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>How many acceptance filters are availabe.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="FILTER-WIDTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Which bit-size do the filters have.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WILD-CARDS" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Is it possible to provide wildcard identifires allowing to specify ranges for filtering.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationFilter -->
  <xsd:complexType name="COMMUNICATION-FILTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes the amount and the size of the communication filters. These can be used as acceptance or rejection filters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:COMMUNICATION-FILTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::CommunicationHWPort -->
  <xsd:group name="COMMUNICATION-HW-PORT">
    <xsd:sequence>
      <xsd:element name="PHYSICAL-LAYER" type="AR:COMMUNICATION-PHYSICAL-MEDIUM" minOccurs="0"/>
      <xsd:element name="SPEED" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="COMMUNICATION-SPEED-FIXED" type="AR:COMMUNICATION-SPEED-FIXED"/>
            <xsd:element name="COMMUNICATION-SPEED-LIST" type="AR:COMMUNICATION-SPEED-LIST"/>
            <xsd:element name="COMMUNICATION-SPEED-RANGE" type="AR:COMMUNICATION-SPEED-RANGE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationHWPort -->
  <xsd:complexType name="COMMUNICATION-HW-PORT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:PERIPHERAL-HW-PORT"/>
      <xsd:group ref="AR:COMMUNICATION-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::CommunicationPeripheral -->
  <xsd:group name="COMMUNICATION-PERIPHERAL">
    <xsd:annotation>
      <xsd:documentation>Peripheral representing communication devices.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCEPTANCE-FILTER" type="AR:COMMUNICATION-FILTER" minOccurs="0"/>
      <xsd:element name="ARCHITECTURE" type="AR:COMMUNICATION-ARCHITECTURE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The implemented architecture</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CLOCK-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CLOCK--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ERROR-DETECTION" type="AR:ERROR-DETECTION-CORRECTION" minOccurs="0"/>
      <xsd:element name="HW-PORTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMMUNICATION-HW-PORT" type="AR:COMMUNICATION-HW-PORT"/>
            <xsd:element name="ECU-COMMUNICATION-PORT" type="AR:ECU-COMMUNICATION-PORT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MONITOR" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The Element Monitor specifies if the device supports listen only. In this mode the device is passive on the bus and no acknowledgement or other responds are transmitted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROTOCOLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMMUNICATION-PROTOCOL" type="AR:COMMUNICATION-PROTOCOL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REJECTION-FILTER" type="AR:COMMUNICATION-FILTER" minOccurs="0"/>
      <xsd:element name="TIMESTAMP-AVAILABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Is a timestamp for received frames available.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationPeripheral -->
  <xsd:complexType name="COMMUNICATION-PERIPHERAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Peripheral representing communication devices.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:COMMUNICATION-PERIPHERAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMMUNICATION-PERIPHERAL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMMUNICATION-PERIPHERAL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Peripherals::CommunicationPhysicalMedium -->
  <xsd:group name="COMMUNICATION-PHYSICAL-MEDIUM">
    <xsd:annotation>
      <xsd:documentation>Describes the physical medium the bus is working on. In most cases it is not relevant for the SW to know about it, only for compatibility checking.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PHYSICAL-MEDIUM-DATA-LINES" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies how many data lines (ground not included) are used for the physical layer. Some bus systems can be implemented with e.g. 1, 2 or 4 data lines.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PHYSICAL-MEDIUM-STANDARD" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The element protocol name defines the exact standardised protocol name.
Examples are:
- ISO 11519 for low-speed CAN
- IEEE 802.11g for W-LAN (54 Mbit/s at 2,5 GHz)
- IEEE-1394a for Firewire-400</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PHYSICAL-MEDIUM-TYPE" type="AR:COMMUNICATION-PHYSICAL-MEDIUM-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the actual medium used for transmission.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationPhysicalMedium -->
  <xsd:complexType name="COMMUNICATION-PHYSICAL-MEDIUM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes the physical medium the bus is working on. In most cases it is not relevant for the SW to know about it, only for compatibility checking.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:COMMUNICATION-PHYSICAL-MEDIUM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::CommunicationProtocol -->
  <xsd:group name="COMMUNICATION-PROTOCOL">
    <xsd:annotation>
      <xsd:documentation>The name and version of the communication protocol.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VERSIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VERSION" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>This is the version number of the implementation of the protocol layer, e.g. 
- 2.0a, 2.0b  for CAN.
- 1.3, 2.0 for LIN.
- 2.0   for USB.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationProtocol -->
  <xsd:complexType name="COMMUNICATION-PROTOCOL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The name and version of the communication protocol.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-PROTOCOL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::CommunicationSpeed -->
  <xsd:group name="COMMUNICATION-SPEED">
    <xsd:annotation>
      <xsd:documentation>Abstract element to describe communication speed. This can be either a fixed value, a range or a list of allowed communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TOLERANCE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The element defines the tolerance allowed for the interface. (E.g. K-Line or LIN +/- 2 % at 9.6 Kbd)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Peripherals::CommunicationSpeedFixed -->
  <xsd:group name="COMMUNICATION-SPEED-FIXED">
    <xsd:annotation>
      <xsd:documentation>Fixed value for the communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FIX-SPEED" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Unit: bits per second</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationSpeedFixed -->
  <xsd:complexType name="COMMUNICATION-SPEED-FIXED" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Fixed value for the communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:COMMUNICATION-SPEED"/>
      <xsd:group ref="AR:COMMUNICATION-SPEED-FIXED"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::CommunicationSpeedList -->
  <xsd:group name="COMMUNICATION-SPEED-LIST">
    <xsd:annotation>
      <xsd:documentation>List of possible communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SPEEDS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SPEED" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>Unit: bits per second</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationSpeedList -->
  <xsd:complexType name="COMMUNICATION-SPEED-LIST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>List of possible communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:COMMUNICATION-SPEED"/>
      <xsd:group ref="AR:COMMUNICATION-SPEED-LIST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::CommunicationSpeedRange -->
  <xsd:group name="COMMUNICATION-SPEED-RANGE">
    <xsd:annotation>
      <xsd:documentation>Range of communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAX-SPEED" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Unit: bits per second</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-SPEED" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Unit: bits per second</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::CommunicationSpeedRange -->
  <xsd:complexType name="COMMUNICATION-SPEED-RANGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Range of communication speed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:COMMUNICATION-SPEED"/>
      <xsd:group ref="AR:COMMUNICATION-SPEED-RANGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::CommunicationTransceiver -->
  <xsd:group name="COMMUNICATION-TRANSCEIVER">
    <xsd:annotation>
      <xsd:documentation>The Communication Transceiver has to transfer and receive the data through the physical link and is the implementation of the OSI layer 1. Communication Transceivers have additional links to the controller/PU to support wake-up feature, enabling/disabling and error indication.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCEPTANCE-FILTER" type="AR:COMMUNICATION-FILTER" minOccurs="0"/>
      <xsd:element name="ARCHITECTURE" type="AR:COMMUNICATION-ARCHITECTURE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Distinguish between different implementations.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REJECTION-FILTER" type="AR:COMMUNICATION-FILTER" minOccurs="0"/>
      <xsd:element name="TERMINATION" type="AR:BUS-TERMINATION" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::CommunicationTransceiver -->
  <xsd:complexType name="COMMUNICATION-TRANSCEIVER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Communication Transceiver has to transfer and receive the data through the physical link and is the implementation of the OSI layer 1. Communication Transceivers have additional links to the controller/PU to support wake-up feature, enabling/disabling and error indication.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:ECU-ELECTRONICS"/>
      <xsd:group ref="AR:COMMUNICATION-TRANSCEIVER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class AdminData::CompanyRevisionInfo -->
  <xsd:group name="COMPANY-REVISION-INFO">
    <xsd:annotation>
      <xsd:documentation>Use &lt;companyRevisionInfo&gt; , to generate information on document version within the respective company.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="COMPANY-REVISION-INFO";msr.id="type__COMPANY-REVISION-INFO_TYPE";xml.sequenceOffset="30"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class AdminData::CompanyRevisionInfo -->
  <xsd:complexType name="COMPANY-REVISION-INFO" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;companyRevisionInfo&gt; , to generate information on document version within the respective company.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="COMPANY-REVISION-INFO";msr.id="type__COMPANY-REVISION-INFO_TYPE";xml.sequenceOffset="30"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AdminData::CompanySpecificInfo -->
  <xsd:group name="COMPANY-SPECIFIC-INFO">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class AdminData::CompanySpecificInfo -->
  <xsd:complexType name="COMPANY-SPECIFIC-INFO" abstract="false" mixed="false">
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Implementation::Compiler -->
  <xsd:group name="COMPILER">
    <xsd:annotation>
      <xsd:documentation>Specifies the compiler attributes. In case of source code this specifies requirements how the compiler shall be invoked. In case of object code this documents the used compiler settings.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NAME" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Compiler name (like gcc).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPTIONS" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the compiler options.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VENDOR" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Vendor of compiler.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VERSION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Exact version of compiler executable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Implementation::Compiler -->
  <xsd:complexType name="COMPILER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the compiler attributes. In case of source code this specifies requirements how the compiler shall be invoked. In case of object code this documents the used compiler settings.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMPILER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Components::ComplexDeviceDriverComponentType -->
  <xsd:group name="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>The ComplexDeviceDriver Component is a special AtomicSoftwareComponent that has direct access to hardware on an ECU and which is therefore linked to a specific ECU or specific hardware. The ComplexDeviceDriverComponentType introduces the possibility to link from the software representation to its hardware description provided by the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="HARDWARE-ELEMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="HARDWARE-ELEMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-ELEMENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Components::ComplexDeviceDriverComponentType -->
  <xsd:complexType name="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ComplexDeviceDriver Component is a special AtomicSoftwareComponent that has direct access to hardware on an ECU and which is therefore linked to a specific ECU or specific hardware. The ComplexDeviceDriverComponentType introduces the possibility to link from the software representation to its hardware description provided by the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
      <xsd:group ref="AR:COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SWmapping::ComponentClustering -->
  <xsd:group name="COMPONENT-CLUSTERING">
    <xsd:annotation>
      <xsd:documentation>Constraint that forces the mapping of all referenced SW component instances to the same ECU</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CLUSTERED-COMPONENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPONENT-IN-SYSTEM-INSTANCE-REF" type="AR:COMPONENT-IN-SYSTEM-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SWmapping::ComponentClustering -->
  <xsd:complexType name="COMPONENT-CLUSTERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Constraint that forces the mapping of all referenced SW component instances to the same ECU</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MAPPING-CONSTRAINT"/>
      <xsd:group ref="AR:COMPONENT-CLUSTERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InstanceRefs::ComponentInSystemInstanceRef -->
  <xsd:group name="COMPONENT-IN-SYSTEM-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-COMPONENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTEXT-COMPONENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-COMPOSITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SOFTWARE-COMPOSITION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-COMPONENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::ComponentInSystemInstanceRef -->
  <xsd:complexType name="COMPONENT-IN-SYSTEM-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:COMPONENT-IN-SYSTEM-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Composition::ComponentPrototype -->
  <xsd:group name="COMPONENT-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>Role of a software component within a composition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TYPE-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Composition::ComponentPrototype -->
  <xsd:complexType name="COMPONENT-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Role of a software component within a composition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:COMPONENT-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMPONENT-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMPONENT-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SWmapping::ComponentSeparation -->
  <xsd:group name="COMPONENT-SEPARATION">
    <xsd:annotation>
      <xsd:documentation>Constraint that forces the two referenced SW components (called A and B in the following) not to be mapped to the same ECU. If a SW component (e.g. A) is a composition, none of the atomic SW components making up the A composition must be mapped together with any of the atomic SW components making up the B composition. Furthermore, A and B must be disjoint.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SEPARATED-COMPONENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="COMPONENT-IN-SYSTEM-INSTANCE-REF" type="AR:COMPONENT-IN-SYSTEM-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SWmapping::ComponentSeparation -->
  <xsd:complexType name="COMPONENT-SEPARATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Constraint that forces the two referenced SW components (called A and B in the following) not to be mapped to the same ECU. If a SW component (e.g. A) is a composition, none of the atomic SW components making up the A composition must be mapped together with any of the atomic SW components making up the B composition. Furthermore, A and B must be disjoint.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MAPPING-CONSTRAINT"/>
      <xsd:group ref="AR:COMPONENT-SEPARATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::ComponentType -->
  <xsd:group name="COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>Base class for AUTOSAR software components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PORTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="P-PORT-PROTOTYPE" type="AR:P-PORT-PROTOTYPE"/>
            <xsd:element name="R-PORT-PROTOTYPE" type="AR:R-PORT-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="COMPONENT-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
      <xsd:enumeration value="PARAMETER-COMPONENT-TYPE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Composition::CompositionComponentType -->
  <xsd:group name="COMPOSITION-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>A CompositionComponentType aggregates ComponentPrototypes (that in turn are typed by ComponentTypes) as well as ConnectorPrototypes for primarily connecting ComponentPrototypes among each others and towards the surface of the CompositionComponentType. By this means hierarchical structures of software-components can be created.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPONENT-PROTOTYPE" type="AR:COMPONENT-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONNECTORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ASSEMBLY-CONNECTOR-PROTOTYPE" type="AR:ASSEMBLY-CONNECTOR-PROTOTYPE"/>
            <xsd:element name="DELEGATION-CONNECTOR-PROTOTYPE" type="AR:DELEGATION-CONNECTOR-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Composition::CompositionComponentType -->
  <xsd:complexType name="COMPOSITION-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A CompositionComponentType aggregates ComponentPrototypes (that in turn are typed by ComponentTypes) as well as ConnectorPrototypes for primarily connecting ComponentPrototypes among each others and towards the surface of the CompositionComponentType. By this means hierarchical structures of software-components can be created.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
      <xsd:group ref="AR:COMPOSITION-COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMPOSITION-COMPONENT-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ComputationMethod::Compu -->
  <xsd:group name="COMPU">
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:COMPU-PROG-CODE"/>
        <xsd:group ref="AR:COMPU-SCALES"/>
      </xsd:choice>
      <xsd:element name="COMPU-DEFAULT-VALUE" type="AR:COMPU-CONST" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::Compu -->
  <xsd:complexType name="COMPU" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuConst -->
  <xsd:group name="COMPU-CONST">
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:COMPU-CONST-FORMULA-CONTENT"/>
        <xsd:group ref="AR:COMPU-CONST-NUMERIC-CONTENT"/>
        <xsd:group ref="AR:COMPU-CONST-TEXT-CONTENT"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuConst -->
  <xsd:complexType name="COMPU-CONST" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-CONST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuConstContent -->
  <xsd:group name="COMPU-CONST-CONTENT">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class ComputationMethod::CompuConstFormulaContent -->
  <xsd:group name="COMPU-CONST-FORMULA-CONTENT">
    <xsd:sequence>
      <xsd:element name="VF" type="AR:VF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuConstFormulaContent -->
  <xsd:complexType name="COMPU-CONST-FORMULA-CONTENT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-CONST-FORMULA-CONTENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuConstNumericContent -->
  <xsd:group name="COMPU-CONST-NUMERIC-CONTENT">
    <xsd:sequence>
      <xsd:element name="V" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;v&gt; to enter a numerical value.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="COMPU-CONST_numericContent_TYPE__V";msr.tbdString="true";xml.sequenceOffset="50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuConstNumericContent -->
  <xsd:complexType name="COMPU-CONST-NUMERIC-CONTENT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-CONST-NUMERIC-CONTENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuConstTextContent -->
  <xsd:group name="COMPU-CONST-TEXT-CONTENT">
    <xsd:sequence>
      <xsd:element name="VT" type="AR:VT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuConstTextContent -->
  <xsd:complexType name="COMPU-CONST-TEXT-CONTENT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-CONST-TEXT-CONTENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuContent -->
  <xsd:group name="COMPU-CONTENT">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class ComputationMethod::CompuGenericMath -->
  <xsd:group name="COMPU-GENERIC-MATH">
    <xsd:annotation>
      <xsd:documentation>This class represents a calculation formula as a simple arithmetical expression.

string f(x): function to calculate the physical value from the binary, control unit internal value. The interpretation proceeds from left to right for operations of the same operation preferences. Operator preferences, such as power before product/quotient before sum/difference before shift left before shift right before logical AND before logical OR are taken into account. Brackets are allowed and should be used in order to exclude interpretation doubt. 

For more details refer to ASAM Harmonized Data Objects v1.1 Chapter 9.3.11.

Note that this element is a mixed string since a future variant mechanism  might use placeholdes to represent references to other objects of the metamodel.

As of August 2007 within ASAM there are slightly different syntaxes. One from ASAM-HDO (GenericMath) and the one from SwDataDependency: The difference is mainly between available functions and operators. Nevertheless we use the same class for now.

numeric_expression ::= ( "-"expression ) | ( expression ( "+" | "-" | "*" | "/" | "^") expression )
                expression ::= ( number | variable | numeric_expression | ( "(" expression ")" ) | sinus_statement | cosinus_statement | sqrt_statement ) | expression {white-space}
                sinus_statement ::= "sin" "(" expression ")"
                cosinus_statement ::= "cos" "(" expression ")"
                sqrt_statement ::= "sqrt" "(" expression ")"
                number ::= integer_literal | float_literal
                variable ::= Any valid Object in question
                integer_literal ::= ( "1..9" { "0..9" } ) | ( "0" "x" "0..9a..f" { "0..9a..f" } )
                float_literal ::= ( decimal_digits "."  decimal_digits   exponent_part  ) | ( "." decimal_digits  exponent_part  ) | ( decimal_digits  exponent_part  )
                decimal_digits ::= "0..9" { "0..9" }
                exponent_part ::= "e"  "+" | "-"  decimal_digits
                white-space ::= tabulator | blank | newline | carriage_return | {tabulator | blank | newline | carriage_return }
                tabulator ::= \t
                blank ::= " "
                newline ::= \n
                carriage_return ::= \c</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-COMPU-GENERIC-MATH";msr.id="type__COMPU-GENERIC-MATH_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class ComputationMethod::CompuGenericMath -->
  <xsd:attributeGroup name="COMPU-GENERIC-MATH">
    <xsd:annotation>
      <xsd:documentation>This class represents a calculation formula as a simple arithmetical expression.

string f(x): function to calculate the physical value from the binary, control unit internal value. The interpretation proceeds from left to right for operations of the same operation preferences. Operator preferences, such as power before product/quotient before sum/difference before shift left before shift right before logical AND before logical OR are taken into account. Brackets are allowed and should be used in order to exclude interpretation doubt. 

For more details refer to ASAM Harmonized Data Objects v1.1 Chapter 9.3.11.

Note that this element is a mixed string since a future variant mechanism  might use placeholdes to represent references to other objects of the metamodel.

As of August 2007 within ASAM there are slightly different syntaxes. One from ASAM-HDO (GenericMath) and the one from SwDataDependency: The difference is mainly between available functions and operators. Nevertheless we use the same class for now.

numeric_expression ::= ( "-"expression ) | ( expression ( "+" | "-" | "*" | "/" | "^") expression )
                expression ::= ( number | variable | numeric_expression | ( "(" expression ")" ) | sinus_statement | cosinus_statement | sqrt_statement ) | expression {white-space}
                sinus_statement ::= "sin" "(" expression ")"
                cosinus_statement ::= "cos" "(" expression ")"
                sqrt_statement ::= "sqrt" "(" expression ")"
                number ::= integer_literal | float_literal
                variable ::= Any valid Object in question
                integer_literal ::= ( "1..9" { "0..9" } ) | ( "0" "x" "0..9a..f" { "0..9a..f" } )
                float_literal ::= ( decimal_digits "."  decimal_digits   exponent_part  ) | ( "." decimal_digits  exponent_part  ) | ( decimal_digits  exponent_part  )
                decimal_digits ::= "0..9" { "0..9" }
                exponent_part ::= "e"  "+" | "-"  decimal_digits
                white-space ::= tabulator | blank | newline | carriage_return | {tabulator | blank | newline | carriage_return }
                tabulator ::= \t
                blank ::= " "
                newline ::= \n
                carriage_return ::= \c</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-COMPU-GENERIC-MATH";msr.id="type__COMPU-GENERIC-MATH_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="LEVEL" type="AR:IDENTIFIER">
      <xsd:annotation>
        <xsd:documentation>Placeholder to describe an indicator of a language level for the mathematics e.g. INFORMAL, ASAMHDO.
May be refined by particular usecases.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="COMPU-GENERIC-MATH_TYPE__COMPU-GENERIC-MATH_TYPE__LEVEL";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class ComputationMethod::CompuGenericMath -->
  <xsd:complexType name="COMPU-GENERIC-MATH" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This class represents a calculation formula as a simple arithmetical expression.

string f(x): function to calculate the physical value from the binary, control unit internal value. The interpretation proceeds from left to right for operations of the same operation preferences. Operator preferences, such as power before product/quotient before sum/difference before shift left before shift right before logical AND before logical OR are taken into account. Brackets are allowed and should be used in order to exclude interpretation doubt. 

For more details refer to ASAM Harmonized Data Objects v1.1 Chapter 9.3.11.

Note that this element is a mixed string since a future variant mechanism  might use placeholdes to represent references to other objects of the metamodel.

As of August 2007 within ASAM there are slightly different syntaxes. One from ASAM-HDO (GenericMath) and the one from SwDataDependency: The difference is mainly between available functions and operators. Nevertheless we use the same class for now.

numeric_expression ::= ( "-"expression ) | ( expression ( "+" | "-" | "*" | "/" | "^") expression )
                expression ::= ( number | variable | numeric_expression | ( "(" expression ")" ) | sinus_statement | cosinus_statement | sqrt_statement ) | expression {white-space}
                sinus_statement ::= "sin" "(" expression ")"
                cosinus_statement ::= "cos" "(" expression ")"
                sqrt_statement ::= "sqrt" "(" expression ")"
                number ::= integer_literal | float_literal
                variable ::= Any valid Object in question
                integer_literal ::= ( "1..9" { "0..9" } ) | ( "0" "x" "0..9a..f" { "0..9a..f" } )
                float_literal ::= ( decimal_digits "."  decimal_digits   exponent_part  ) | ( "." decimal_digits  exponent_part  ) | ( decimal_digits  exponent_part  )
                decimal_digits ::= "0..9" { "0..9" }
                exponent_part ::= "e"  "+" | "-"  decimal_digits
                white-space ::= tabulator | blank | newline | carriage_return | {tabulator | blank | newline | carriage_return }
                tabulator ::= \t
                blank ::= " "
                newline ::= \n
                carriage_return ::= \c</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-COMPU-GENERIC-MATH";msr.id="type__COMPU-GENERIC-MATH_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:COMPU-GENERIC-MATH"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuMethod -->
  <xsd:group name="COMPU-METHOD">
    <xsd:sequence>
      <xsd:element name="DISPLAY-FORMAT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This property specifies, how the physical value shall be displayed e.g. in documents or measurement and calibration tools.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="COMPU-METHOD_TYPE__DISPLAY-FORMAT";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UNIT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:UNIT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPU-INTERNAL-TO-PHYS" type="AR:COMPU" minOccurs="0"/>
      <xsd:element name="COMPU-PHYS-TO-INTERNAL" type="AR:COMPU" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuMethod -->
  <xsd:complexType name="COMPU-METHOD" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMPU-METHOD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="COMPU-METHOD--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMPU-METHOD"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ComputationMethod::CompuNominatorDenominator -->
  <xsd:group name="COMPU-NOMINATOR-DENOMINATOR">
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="VF" type="AR:VF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="V" type="AR:NUMERICAL-VALUE" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;v&gt; to enter a numerical value.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="30";msr.id="COMPU-NOMINATOR_DENOMINATOR_TYPE__V"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuNominatorDenominator -->
  <xsd:complexType name="COMPU-NOMINATOR-DENOMINATOR" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:COMPU-NOMINATOR-DENOMINATOR"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuProgCode -->
  <xsd:group name="COMPU-PROG-CODE">
    <xsd:sequence>
      <xsd:element name="PROG-CODE" type="AR:PROG-CODE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuProgCode -->
  <xsd:complexType name="COMPU-PROG-CODE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-PROG-CODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuRationalCoeffs -->
  <xsd:group name="COMPU-RATIONAL-COEFFS">
    <xsd:sequence>
      <xsd:element name="COMPU-NUMERATOR" type="AR:COMPU-NOMINATOR-DENOMINATOR" minOccurs="0"/>
      <xsd:element name="COMPU-DENOMINATOR" type="AR:COMPU-NOMINATOR-DENOMINATOR" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuRationalCoeffs -->
  <xsd:complexType name="COMPU-RATIONAL-COEFFS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-RATIONAL-COEFFS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuScale -->
  <xsd:group name="COMPU-SCALE">
    <xsd:sequence>
      <xsd:element name="SHORT-LABEL" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies a short name for the particular scale. The name can for example be used to derive a programming language identifier.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="COMPU-SCALE_TYPE__SHORT-LABEL";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DESC" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:element name="MASK" type="AR:POSITIVE-INTEGER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>In difference to all the other computational methods every COMPU-SCALE will be applied including the bit MASK. Therefore it is allowed for this type of COMPU-METHOD, that COMPU-SCALES overlap. To calculate the string reverse to a value, the string has to be split and the
according value for each substring has to be summed up. The sum is finally transmitted.
The processing has to be done in order of the COMPU-SCALE elements.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="35"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LOWER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
      <xsd:element name="UPPER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:COMPU-SCALE-CONSTANT-CONTENTS"/>
        <xsd:group ref="AR:COMPU-SCALE-RATIONAL-FORMULA"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuScale -->
  <xsd:complexType name="COMPU-SCALE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-SCALE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuScaleConstantContents -->
  <xsd:group name="COMPU-SCALE-CONSTANT-CONTENTS">
    <xsd:sequence>
      <xsd:element name="COMPU-CONST" type="AR:COMPU-CONST" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuScaleConstantContents -->
  <xsd:complexType name="COMPU-SCALE-CONSTANT-CONTENTS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-SCALE-CONSTANT-CONTENTS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuScaleContents -->
  <xsd:group name="COMPU-SCALE-CONTENTS">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class ComputationMethod::CompuScaleGenericMath -->
  <xsd:group name="COMPU-SCALE-GENERIC-MATH">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuScaleGenericMath -->
  <xsd:complexType name="COMPU-SCALE-GENERIC-MATH" abstract="false" mixed="false">
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuScaleRationalFormula -->
  <xsd:group name="COMPU-SCALE-RATIONAL-FORMULA">
    <xsd:sequence>
      <xsd:element name="COMPU-RATIONAL-COEFFS" type="AR:COMPU-RATIONAL-COEFFS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuScaleRationalFormula -->
  <xsd:complexType name="COMPU-SCALE-RATIONAL-FORMULA" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-SCALE-RATIONAL-FORMULA"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ComputationMethod::CompuScales -->
  <xsd:group name="COMPU-SCALES">
    <xsd:sequence>
      <xsd:element name="COMPU-SCALES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPU-SCALE" type="AR:COMPU-SCALE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ComputationMethod::CompuScales -->
  <xsd:complexType name="COMPU-SCALES" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:COMPU-SCALES"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EventTriggeringConstraint::ConcretePatternEventTriggering -->
  <xsd:group name="CONCRETE-PATTERN-EVENT-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>The concrete pattern event triggering describes events, which occur following a known pattern. This means that for the worst case event arrival the corresponding occurrence behavior can be modeled as a pattern..</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OFFSET-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OFFSET-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PATTERN-LENGTH-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EventTriggeringConstraint::ConcretePatternEventTriggering -->
  <xsd:complexType name="CONCRETE-PATTERN-EVENT-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The concrete pattern event triggering describes events, which occur following a known pattern. This means that for the worst case event arrival the corresponding occurrence behavior can be modeled as a pattern..</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EVENT-TRIGGERING-CONSTRAINT"/>
      <xsd:group ref="AR:CONCRETE-PATTERN-EVENT-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SystemConstant::ConditionByFormula -->
  <xsd:group name="CONDITION-BY-FORMULA">
    <xsd:annotation>
      <xsd:documentation>This class represents a conditom which is computed based on systemconstants according to the specified expression. The expected result is a considered as boolean value.

The result of the expression is interpreted as a condition. 

* "0" represents "false";  

* a value greater than zero is considered "true"</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SYSCOND_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SystemConstant::ConditionByFormula -->
  <xsd:complexType name="CONDITION-BY-FORMULA" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This class represents a conditom which is computed based on systemconstants according to the specified expression. The expected result is a considered as boolean value.

The result of the expression is interpreted as a condition. 

* "0" represents "false";  

* a value greater than zero is considered "true"</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SYSCOND_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-SYSTEMCONST-DEPENDANT-FORMULA"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::ConditionalChangeNad -->
  <xsd:group name="CONDITIONAL-CHANGE-NAD">
    <xsd:annotation>
      <xsd:documentation>Generates an conditional change NAD request. See LIN 2.1 protocol specification for more informations.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BYTE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Byte Position of Data Byte that should be used for the bitwise XOR with Invert and the bitwise AND with Mask.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Byte Position of Id.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INVERT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Byte Position of Invert.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MASK" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Byte Position of Mask.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NEW-NAD" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The newly assigned NAD value (Byte Position).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::ConditionalChangeNad -->
  <xsd:complexType name="CONDITIONAL-CHANGE-NAD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Generates an conditional change NAD request. See LIN 2.1 protocol specification for more informations.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
      <xsd:group ref="AR:CONDITIONAL-CHANGE-NAD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::ConfigParameter -->
  <xsd:group name="CONFIG-PARAMETER">
    <xsd:annotation>
      <xsd:documentation>Abstract class used to define the similarities of all ECU Configuration Parameter types defined as subclasses.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DERIVATION" type="AR:DERIVATION-SPECIFICATION" minOccurs="0"/>
      <xsd:element name="SYMBOLIC-NAME-VALUE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies that this parameter's value is used, together with the aggregating container, to derive a symbolic name definition. E.g.: #define "container_shortName" "this parameter's value".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WITH-AUTO" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies whether it shall be allowed on the value side to specify this parameter value as "AUTO".

If withAuto is "true" it shall be possible to set the "isAutoValue" attribute of the respective parameter to "true". This means that the actual value will not be considered during ECU Configuration but will be (re-)calculated by the code generator and stored in the value attribute afterwards. These implicit updated values might require a re-generation of other modules which reference these values.

If withAuto is "false" it shall not be possible to set the "isAutoValue" attribute of the respective parameter to "true".

If withAuto is not present the default is "false".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="CONFIG-PARAMETER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ADD-INFO-PARAM-DEF"/>
      <xsd:enumeration value="BOOLEAN-PARAM-DEF"/>
      <xsd:enumeration value="ENUMERATION-PARAM-DEF"/>
      <xsd:enumeration value="FLOAT-PARAM-DEF"/>
      <xsd:enumeration value="FUNCTION-NAME-DEF"/>
      <xsd:enumeration value="INTEGER-PARAM-DEF"/>
      <xsd:enumeration value="LINKER-SYMBOL-DEF"/>
      <xsd:enumeration value="MULTILINE-STRING-PARAM-DEF"/>
      <xsd:enumeration value="STRING-PARAM-DEF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCParameterDefTemplate::ConfigReference -->
  <xsd:group name="CONFIG-REFERENCE">
    <xsd:annotation>
      <xsd:documentation>Common class to gather the attributes for the definition of references.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="CONFIG-REFERENCE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CHOICE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="FOREIGN-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="INSTANCE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="SYMBOLIC-NAME-REFERENCE-PARAM-DEF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCDescriptionTemplate::ConfigReferenceValue -->
  <xsd:group name="CONFIG-REFERENCE-VALUE">
    <xsd:annotation>
      <xsd:documentation>Abstract class to be used as common parent for all reference values in the ECU Configuration Description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFINITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CONFIG-REFERENCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUCParameterDefTemplate::ConfigurationClassAffection -->
  <xsd:group name="CONFIGURATION-CLASS-AFFECTION">
    <xsd:annotation>
      <xsd:documentation>Specifies in the "VendorSpecificModuleDefinition" whether changes on this parameter do affect other parameters in a later configuration step.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AFFECTED-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="AFFECTED-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COMMON-CONFIGURATION-ATTRIBUTES--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="AFFECTION-KIND" type="AR:CONFIGURATION-AFFECTION" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies which affect do changes in this parameter have on other parameters.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ConfigurationClassAffection -->
  <xsd:complexType name="CONFIGURATION-CLASS-AFFECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies in the "VendorSpecificModuleDefinition" whether changes on this parameter do affect other parameters in a later configuration step.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CONFIGURATION-CLASS-AFFECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Composition::ConnectorPrototype -->
  <xsd:group name="CONNECTOR-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>The base class for connectors between ports. Connectors have to be identifiable to allow references from the system constraint template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAPPING-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-INTERFACE-MAPPING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Constants::ConstantReference -->
  <xsd:group name="CONSTANT-REFERENCE">
    <xsd:annotation>
      <xsd:documentation>Instead of defining this value inline, a constant is referenced.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONSTANT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CONSTANT-SPECIFICATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::ConstantReference -->
  <xsd:complexType name="CONSTANT-REFERENCE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Instead of defining this value inline, a constant is referenced.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CONSTANT-REFERENCE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Constants::ConstantSpecification -->
  <xsd:group name="CONSTANT-SPECIFICATION">
    <xsd:annotation>
      <xsd:documentation>Specification of a constant that can be part of a package, i.e. it can be defined stand-alone.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE-SPEC" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::ConstantSpecification -->
  <xsd:complexType name="CONSTANT-SPECIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specification of a constant that can be part of a package, i.e. it can be defined stand-alone.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CONSTANT-SPECIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="CONSTANT-SPECIFICATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CONSTANT-SPECIFICATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCDescriptionTemplate::Container -->
  <xsd:group name="CONTAINER">
    <xsd:annotation>
      <xsd:documentation>Represents a Container definition in the ECU Configuration Description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFINITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CONTAINER-DEF--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ANNOTATION" type="AR:ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PARAMETER-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ADD-INFO-PARAMETER-VALUE" type="AR:ADD-INFO-PARAMETER-VALUE"/>
            <xsd:element name="NUMERICAL-PARAMETER-VALUE" type="AR:NUMERICAL-PARAMETER-VALUE"/>
            <xsd:element name="TEXTUAL-PARAMETER-VALUE" type="AR:TEXTUAL-PARAMETER-VALUE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REFERENCE-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INSTANCE-REFERENCE-VALUE" type="AR:INSTANCE-REFERENCE-VALUE"/>
            <xsd:element name="REFERENCE-VALUE" type="AR:REFERENCE-VALUE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SUB-CONTAINERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTAINER" type="AR:CONTAINER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::Container -->
  <xsd:complexType name="CONTAINER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Represents a Container definition in the ECU Configuration Description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CONTAINER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::ContainerDef -->
  <xsd:group name="CONTAINER-DEF">
    <xsd:annotation>
      <xsd:documentation>Base class used to gather common attributes of configuration container definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="POST-BUILD-CHANGEABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies if the number of instances of this container may be changed post-build time. This parameter may only be set to true if all of the following conditions hold:
- the container's upperMultiplicity &gt; lowerMultiplicity
- all parameters within the container and subContainers are post-build time changeable.
If any of the aggregated parameters is either pre-compile time or link time this attribute is ignored and may be omitted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="CONTAINER-DEF--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CHOICE-CONTAINER-DEF"/>
      <xsd:enumeration value="PARAM-CONF-CONTAINER-DEF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreTopology::CycleCounter -->
  <xsd:group name="CYCLE-COUNTER">
    <xsd:annotation>
      <xsd:documentation>The communication cycle where the frame is send is described by the attribute "cycleCounter".</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CYCLE-COUNTER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The communication cycle where the frame described by this timing is sent. If a timing is given in this way the referencing cluster must specify the NUMBER-OF-CYCLES as upper bound and point of total repetition. 

This value is incremented at the beginning of each new cycle, ranging from 0 to
63, and is reset to 0 after a sequence of 64 cycles.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreTopology::CycleCounter -->
  <xsd:complexType name="CYCLE-COUNTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The communication cycle where the frame is send is described by the attribute "cycleCounter".</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CYCLE-COUNTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreTopology::CycleRepetition -->
  <xsd:group name="CYCLE-REPETITION">
    <xsd:annotation>
      <xsd:documentation>The communication cycle where the frame is send is described by the
attributes baseCycle and cycleRepetition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BASE-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The first communication cycle where the frame is sent.

This value is incremented at the beginning of each new cycle, ranging from 0 to
63, and is reset to 0 after a sequence of 64 cycles.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CYCLE-REPETITION" type="AR:CYCLE-REPETITION-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of communication cycles (after the first cycle) whenever the frame described by this timing is sent again.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreTopology::CycleRepetition -->
  <xsd:complexType name="CYCLE-REPETITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The communication cycle where the frame is send is described by the
attributes baseCycle and cycleRepetition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CYCLE-REPETITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::CyclicTiming -->
  <xsd:group name="CYCLIC-TIMING">
    <xsd:annotation>
      <xsd:documentation>Specification of a cyclic sending behavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIME-OFFSET" type="AR:TIME-RANGE-TYPE" minOccurs="0"/>
      <xsd:element name="TIME-PERIOD" type="AR:TIME-RANGE-TYPE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::CyclicTiming -->
  <xsd:complexType name="CYCLIC-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specification of a cyclic sending behavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CYCLIC-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::DAC -->
  <xsd:group name="DAC">
    <xsd:annotation>
      <xsd:documentation>The processing unit writes a digital value to a register of the DAC and the value is converted to an analogue value at a given pin.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Peripherals::DAC -->
  <xsd:complexType name="DAC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The processing unit writes a digital value to a register of the DAC and the value is converted to an analogue value at a given pin.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:ANALOGUE-IO"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class GlobalConstraints::DataConstr -->
  <xsd:group name="DATA-CONSTR">
    <xsd:sequence>
      <xsd:element name="DATA-CONSTR-RULES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DATA-CONSTR-RULE" type="AR:DATA-CONSTR-RULE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GlobalConstraints::DataConstr -->
  <xsd:complexType name="DATA-CONSTR" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:DATA-CONSTR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="DATA-CONSTR--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DATA-CONSTR"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class GlobalConstraints::DataConstrRule -->
  <xsd:group name="DATA-CONSTR-RULE">
    <xsd:sequence>
      <xsd:element name="PHYS-CONSTRS" type="AR:PHYS-CONSTRS" minOccurs="0"/>
      <xsd:element name="INTERNAL-CONSTRS" type="AR:INTERNAL-CONSTRS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GlobalConstraints::DataConstrRule -->
  <xsd:complexType name="DATA-CONSTR-RULE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:DATA-CONSTR-RULE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::DataDumpEntry -->
  <xsd:group name="DATA-DUMP-ENTRY">
    <xsd:annotation>
      <xsd:documentation>This service is reserved for initial configuration of a slave node by the slave node supplier and the format of this message is supplier specific.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BYTE-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="5">
            <xsd:element name="BYTE-VALUE" type="xsd:integer" minOccurs="0" maxOccurs="5">
              <xsd:annotation>
                <xsd:documentation>Supplier specific format.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::DataDumpEntry -->
  <xsd:complexType name="DATA-DUMP-ENTRY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This service is reserved for initial configuration of a slave node by the slave node supplier and the format of this message is supplier specific.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
      <xsd:group ref="AR:DATA-DUMP-ENTRY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InputOutputLatencyConstraint::DataElementInputLatencyConstraint -->
  <xsd:group name="DATA-ELEMENT-INPUT-LATENCY-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the input latency of data received by an application component via sender-receiver communication. Thereby, the input latency is defined as the time latency between the point in time where the data is generated by a physical sensor or other hardware I/O and the point in time where it is available for the application component, that is referenced by the associated timing event.

The timing event in the scope of this constraint must be of type dataElementReceived.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TD-EVENT-DATA-ELEMENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InputOutputLatencyConstraint::DataElementInputLatencyConstraint -->
  <xsd:complexType name="DATA-ELEMENT-INPUT-LATENCY-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the input latency of data received by an application component via sender-receiver communication. Thereby, the input latency is defined as the time latency between the point in time where the data is generated by a physical sensor or other hardware I/O and the point in time where it is available for the application component, that is referenced by the associated timing event.

The timing event in the scope of this constraint must be of type dataElementReceived.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:INPUT-OUTPUT-LATENCY-CONSTRAINT"/>
      <xsd:group ref="AR:DATA-ELEMENT-INPUT-LATENCY-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InputOutputLatencyConstraint::DataElementOutputLatencyConstraint -->
  <xsd:group name="DATA-ELEMENT-OUTPUT-LATENCY-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the output latency of data sent by an application component via sender-receiver communication. Thereby, the output latency is defined as the time latency between the point in time where the data is sent by the application component, that is referenced by the associated timing event, and the point in time where it is consumed by a physical actuator or other hardware I/O.

The timing event in the scope of this constraint must be of type dataElementSent.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TD-EVENT-DATA-ELEMENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InputOutputLatencyConstraint::DataElementOutputLatencyConstraint -->
  <xsd:complexType name="DATA-ELEMENT-OUTPUT-LATENCY-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the output latency of data sent by an application component via sender-receiver communication. Thereby, the output latency is defined as the time latency between the point in time where the data is sent by the application component, that is referenced by the associated timing event, and the point in time where it is consumed by a physical actuator or other hardware I/O.

The timing event in the scope of this constraint must be of type dataElementSent.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:INPUT-OUTPUT-LATENCY-CONSTRAINT"/>
      <xsd:group ref="AR:DATA-ELEMENT-OUTPUT-LATENCY-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Filter::DataFilter -->
  <xsd:group name="DATA-FILTER">
    <xsd:annotation>
      <xsd:documentation>Base class for data filters. The type of the filter is specified in dataFilterAttribute. Some of the filter types require additional arguments which are specified as attributes of this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-FILTER-TYPE" type="AR:DATA-FILTER-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>this attriburte specifies the type of the filter.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MASK" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>mask for old and new value</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value to specify the upper boundary</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value to specify the lower boundary</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OFFSET" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>specifies the initial number of messages to occur before the first message is passed</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PERIOD" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>specifies number of messages to occur before the message is passed again</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="X" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value to compare with</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Filter::DataFilter -->
  <xsd:complexType name="DATA-FILTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Base class for data filters. The type of the filter is specified in dataFilterAttribute. Some of the filter types require additional arguments which are specified as attributes of this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DATA-FILTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::DataMapping -->
  <xsd:group name="DATA-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of port elements (data elements and parameters) to frames and signals.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class TransportProtocols::DataNPdu -->
  <xsd:group name="DATA-N-PDU">
    <xsd:annotation>
      <xsd:documentation>Single Frame, First Frame or Consecutive Frame:

The Single Frame network protocol data unit (SF N_PDU) shall be sent out by the sending network entity and can be received by one or multiple receiving network entities.
The Single Frame (SF N_PDU) shall be sent out to transfer a service data unit that can be transferred via a single service request to the data link layer. This network protocol data unit shall be sent to transfer unsegmented messages.

The First Frame network protocol data unit (FF N_PDU) identifies the first network protocol data unit (N_PDU) of a segmented message transmitted by a network sending entity and received by a receiving network entity. 

The Consecutive Frame network protocol data unit (CF N_PDU) transfers segments (N_Data) of the service data unit message data (&lt;MessageData&gt;). All network protocol data units (N_PDUs) transmitted by the sending entity after the First Frame network protocol data unit (FF N_PDU) shall be encoded as Consecutive Frames network protocol data units (CF N_PDUs).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class TransportProtocols::DataNPdu -->
  <xsd:complexType name="DATA-N-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Single Frame, First Frame or Consecutive Frame:

The Single Frame network protocol data unit (SF N_PDU) shall be sent out by the sending network entity and can be received by one or multiple receiving network entities.
The Single Frame (SF N_PDU) shall be sent out to transfer a service data unit that can be transferred via a single service request to the data link layer. This network protocol data unit shall be sent to transfer unsegmented messages.

The First Frame network protocol data unit (FF N_PDU) identifies the first network protocol data unit (N_PDU) of a segmented message transmitted by a network sending entity and received by a receiving network entity. 

The Consecutive Frame network protocol data unit (CF N_PDU) transfers segments (N_Data) of the service data unit message data (&lt;MessageData&gt;). All network protocol data units (N_PDUs) transmitted by the sending entity after the First Frame network protocol data unit (FF N_PDU) shall be encoded as Consecutive Frames network protocol data units (CF N_PDUs).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="DATA-N-PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DATA-N-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DataPrototoypes::DataPrototype -->
  <xsd:group name="DATA-PROTOTYPE">
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class RTEEvents::DataReceiveErrorEvent -->
  <xsd:group name="DATA-RECEIVE-ERROR-EVENT">
    <xsd:annotation>
      <xsd:documentation>This event is raised by the RTE when the Com layer detects and notifies an error concerning the reception of the referenced data element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-IREF" type="AR:DATA-RECEIVE-ERROR-EVENT--DATA-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::DataReceiveErrorEvent -->
  <xsd:complexType name="DATA-RECEIVE-ERROR-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This event is raised by the RTE when the Com layer detects and notifies an error concerning the reception of the referenced data element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:DATA-RECEIVE-ERROR-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::DataReceiveErrorEvent_data -->
  <xsd:group name="DATA-RECEIVE-ERROR-EVENT--DATA-IREF">
    <xsd:sequence>
      <xsd:element name="R-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-ELEMENT-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::DataReceiveErrorEvent_data -->
  <xsd:complexType name="DATA-RECEIVE-ERROR-EVENT--DATA-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:DATA-RECEIVE-ERROR-EVENT--DATA-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::DataReceivedEvent -->
  <xsd:group name="DATA-RECEIVED-EVENT">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced data elements are received.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-IREF" type="AR:DATA-RECEIVED-EVENT--DATA-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::DataReceivedEvent -->
  <xsd:complexType name="DATA-RECEIVED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced data elements are received.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:DATA-RECEIVED-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::DataReceivedEvent_data -->
  <xsd:group name="DATA-RECEIVED-EVENT--DATA-IREF">
    <xsd:sequence>
      <xsd:element name="R-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-ELEMENT-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::DataReceivedEvent_data -->
  <xsd:complexType name="DATA-RECEIVED-EVENT--DATA-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:DATA-RECEIVED-EVENT--DATA-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::DataSendCompletedEvent -->
  <xsd:group name="DATA-SEND-COMPLETED-EVENT">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced data elements have been sent or an error occurs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-ACCESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::DataSendCompletedEvent -->
  <xsd:complexType name="DATA-SEND-COMPLETED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced data elements have been sent or an error occurs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:DATA-SEND-COMPLETED-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Datatypes::DataTypeMap -->
  <xsd:group name="DATA-TYPE-MAP">
    <xsd:annotation>
      <xsd:documentation>This class represents the relationship between ApplicationDataType and its implementing ImplementationDatatype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="APPLICATION-DATA-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="IMPLEMENTATION-DATA-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:IMPLEMENTATION-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Datatypes::DataTypeMap -->
  <xsd:complexType name="DATA-TYPE-MAP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents the relationship between ApplicationDataType and its implementing ImplementationDatatype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DATA-TYPE-MAP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Datatypes::DataTypeMappingSet -->
  <xsd:group name="DATA-TYPE-MAPPING-SET">
    <xsd:annotation>
      <xsd:documentation>This class represents a list of Mappings between applicationDataTypes and ImplementationDataTypes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-TYPE-MAPS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DATA-TYPE-MAP" type="AR:DATA-TYPE-MAP"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Datatypes::DataTypeMappingSet -->
  <xsd:complexType name="DATA-TYPE-MAPPING-SET" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents a list of Mappings between applicationDataTypes and ImplementationDataTypes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:DATA-TYPE-MAPPING-SET"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::DcmIPdu -->
  <xsd:group name="DCM-I-PDU">
    <xsd:annotation>
      <xsd:documentation>Represents the I-PDU's handled by Dcm.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DIAG-PDU-TYPE" type="AR:DIAG-PDU-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Attribute is used to distinguish a request from a response.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::DcmIPdu -->
  <xsd:complexType name="DCM-I-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Represents the I-PDU's handled by Dcm.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-PDU"/>
      <xsd:group ref="AR:DCM-I-PDU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ListElements::DefItem -->
  <xsd:group name="DEF-ITEM">
    <xsd:annotation>
      <xsd:documentation>Use &lt;defItem&gt; , to enter the title of an enumeration element in the definition list.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__DEF-ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEF" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::DefItem -->
  <xsd:attributeGroup name="DEF-ITEM">
    <xsd:annotation>
      <xsd:documentation>Use &lt;defItem&gt; , to enter the title of an enumeration element in the definition list.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__DEF-ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::DefItem -->
  <xsd:complexType name="DEF-ITEM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;defItem&gt; , to enter the title of an enumeration element in the definition list.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__DEF-ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:DEF-ITEM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:DEF-ITEM"/>
  </xsd:complexType>
  <!-- element group for class ListElements::DefList -->
  <xsd:group name="DEF-LIST">
    <xsd:annotation>
      <xsd:documentation>Use &lt;defList&gt; , to create a definition list, where the marginal notes can be referenced.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__DEF-LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEF-ITEM" type="AR:DEF-ITEM" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::DefList -->
  <xsd:attributeGroup name="DEF-LIST">
    <xsd:annotation>
      <xsd:documentation>Use &lt;defList&gt; , to create a definition list, where the marginal notes can be referenced.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__DEF-LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::DefList -->
  <xsd:complexType name="DEF-LIST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;defList&gt; , to create a definition list, where the marginal notes can be referenced.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__DEF-LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DEF-LIST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:DEF-LIST"/>
  </xsd:complexType>
  <!-- element group for class Fibex4Multiplatform::DefaultValueElement -->
  <xsd:group name="DEFAULT-VALUE-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>The default value consists of a number of elements. Each element is one byte long and the number of elements is specified by SduLength.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ELEMENT-BYTE-VALUE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The integer value of a freely defined data byte.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ELEMENT-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute specifies the byte position of the
element within the default value</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::DefaultValueElement -->
  <xsd:complexType name="DEFAULT-VALUE-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The default value consists of a number of elements. Each element is one byte long and the number of elements is specified by SduLength.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DEFAULT-VALUE-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::DelegatedPortAnnotation -->
  <xsd:group name="DELEGATED-PORT-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation to a "delegated port" to specify the Signal Fan In or Signal Fan Out inside the Composition Type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SIGNAL-FAN" type="AR:SIGNAL-FAN-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specify the Signal Fan In or Signal Fan Out inside the Composition Type</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::DelegatedPortAnnotation -->
  <xsd:complexType name="DELEGATED-PORT-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation to a "delegated port" to specify the Signal Fan In or Signal Fan Out inside the Composition Type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:DELEGATED-PORT-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Composition::DelegationConnectorPrototype -->
  <xsd:group name="DELEGATION-CONNECTOR-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>A delegation connector delegates one inner PortPrototype  (a port of a component that is used inside the composition) to a outer PortPrototype of compatible type that belongs directly to the composition (a port that is owned by the composition).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INNER-PORT" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="P-PORT-IN-COMPOSITION-INSTANCE-REF" type="AR:P-PORT-IN-COMPOSITION-INSTANCE-REF"/>
            <xsd:element name="R-PORT-IN-COMPOSITION-INSTANCE-REF" type="AR:R-PORT-IN-COMPOSITION-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="OUTER-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Composition::DelegationConnectorPrototype -->
  <xsd:complexType name="DELEGATION-CONNECTOR-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A delegation connector delegates one inner PortPrototype  (a port of a component that is used inside the composition) to a outer PortPrototype of compatible type that belongs directly to the composition (a port that is owned by the composition).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:CONNECTOR-PROTOTYPE"/>
      <xsd:group ref="AR:DELEGATION-CONNECTOR-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUResourceTemplate::DelegationHWConnection -->
  <xsd:group name="DELEGATION-HW-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>Is used to connect HWPorts of a HWContainer with HWPorts of the contained HWElements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INNER-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:HW-PORT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="OUTER-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:HW-PORT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::DelegationHWConnection -->
  <xsd:complexType name="DELEGATION-HW-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Is used to connect HWPorts of a HWContainer with HWPorts of the contained HWElements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-CONNECTION"/>
      <xsd:group ref="AR:DELEGATION-HW-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Implementation::DependencyOnArtifact -->
  <xsd:group name="DEPENDENCY-ON-ARTIFACT">
    <xsd:annotation>
      <xsd:documentation>Dependency on the existence of another artifact, e.g. a library.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARTIFACT-DESCRIPTOR" type="AR:ISSUE-ENGINEERING-OBJECT" minOccurs="0"/>
      <xsd:element name="USAGES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="USAGE" type="AR:DEPENDENCY-USAGE-ENUM" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>Specification for which process step(s) this dependency is required.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Implementation::DependencyOnArtifact -->
  <xsd:complexType name="DEPENDENCY-ON-ARTIFACT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Dependency on the existence of another artifact, e.g. a library.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:DEPENDENCY-ON-ARTIFACT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::DerivationSpecification -->
  <xsd:group name="DERIVATION-SPECIFICATION">
    <xsd:sequence>
      <xsd:element name="CALCULATION-FORMULA" type="AR:ECU-PARAMETER-DERIVATION-FORMULA" minOccurs="0"/>
      <xsd:element name="ECUC-QUERYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ECUC-QUERY-EXPRESSION" type="AR:ECUC-QUERY-EXPRESSION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INFORMAL-FORMULA" type="AR:ML-FORMULA" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::DerivationSpecification -->
  <xsd:complexType name="DERIVATION-SPECIFICATION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:DERIVATION-SPECIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::DiagnosticCommunicationNeeds -->
  <xsd:group name="DIAGNOSTIC-COMMUNICATION-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the general needs on the configuration of the  Diagnostic Communication Manager (DCM), which are not related to a particular item (e.g. a PID). The main use case is the mapping of service ports to the DCM, which are not related to a particular item.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::DiagnosticCommunicationNeeds -->
  <xsd:complexType name="DIAGNOSTIC-COMMUNICATION-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the general needs on the configuration of the  Diagnostic Communication Manager (DCM), which are not related to a particular item (e.g. a PID). The main use case is the mapping of service ports to the DCM, which are not related to a particular item.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::DiagnosticEventNeeds -->
  <xsd:group name="DIAGNOSTIC-EVENT-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Diagnostic Event Manager for one diagnostic event. Its name can be regarded as a symbol identifying the diagnostic event from the viewpoint of the component or module which owns this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::DiagnosticEventNeeds -->
  <xsd:complexType name="DIAGNOSTIC-EVENT-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Diagnostic Event Manager for one diagnostic event. Its name can be regarded as a symbol identifying the diagnostic event from the viewpoint of the component or module which owns this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="DIAGNOSTIC-EVENT-NEEDS--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DIAGNOSTIC-EVENT-NEEDS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Peripherals::DigitalIO -->
  <xsd:group name="DIGITAL-IO">
    <xsd:annotation>
      <xsd:documentation>Digital Input/Output peripherals provide the capability to send/receive data in a digital manner. Each digital input has an electrical range. When the voltage is less than a specified level, the input is represents logical low '0'. On the opposite when the voltage is higher than a specified value the input represents logical high '1'. A digital I/O can usually be programmed to be either an input or output. It can also be programmed to logically invert the input or output. The maximum frequency of a digital input or output is related to how fast the PU can read or write to the digital I/O register. It's very common for a digital I/O to have different functionality. One example is when a timer has an external clock signal associated with a digital I/O. In this case the maximum frequency is defined by the performance of the timer counter and can be found in the electrical characteristic of the peripheral datasheet.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EDGE-DETECTION" type="AR:DIGITAL-IO-EDGE-DETECTION-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A general digital input can be enabled to trigger an interrupt on a falling, rising or both edges of an input signal. A clock, compare or count input on a timer can be programmed to increase, decrease or store the timer value if a change on the input pin has occurred. The condition for this change can be programmed to trigger an event  in the same manner as for a digital input.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::DigitalIO -->
  <xsd:complexType name="DIGITAL-IO" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Digital Input/Output peripherals provide the capability to send/receive data in a digital manner. Each digital input has an electrical range. When the voltage is less than a specified level, the input is represents logical low '0'. On the opposite when the voltage is higher than a specified value the input represents logical high '1'. A digital I/O can usually be programmed to be either an input or output. It can also be programmed to logically invert the input or output. The maximum frequency of a digital input or output is related to how fast the PU can read or write to the digital I/O register. It's very common for a digital I/O to have different functionality. One example is when a timer has an external clock signal associated with a digital I/O. In this case the maximum frequency is defined by the performance of the timer counter and can be found in the electrical characteristic of the peripheral datasheet.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:DIGITAL-IO"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::DiscreteECUElectronics -->
  <xsd:group name="DISCRETE-ECU-ELECTRONICS">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUElectronics::DiscreteECUElectronics -->
  <xsd:complexType name="DISCRETE-ECU-ELECTRONICS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:ECU-ELECTRONICS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SensorActuator::DisplayHW -->
  <xsd:group name="DISPLAY-HW">
    <xsd:annotation>
      <xsd:documentation>The Display HW element derives from HW Sensor Actuator and can be connected to a PU via a serial or parallel interface.
For the parallel mode the display can be connected to the data bus and address bus of a PU or to a peripheral.
The most common serial interface for displays are:
- I2C
- SPI
The most common physical interface for high resolution displays are the LVDS interface (Low Voltage Differential Signalling). This interface has three different lines for colours (RGB) and additional lines for control signals.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BACKLIGHT" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines whether the display has a background lighting. This eases the readability of the displays during bad daylight conditions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BRIGHTNESS" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the visibility of the display.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BTYPE-OF-CHARACTERS" type="AR:DISPLAY-HW-TYPE-OF-CHARACTERS-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>If the display can present numerical, alpha-numerical, semi-graphical or graphical objects.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CHARACTER-GENERATOR" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>If the display has an in-built character generator.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CHARACTER-SET" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines which character set that can be handled by the display. There is a number of standardised character sets like ISO-8859-1 or Unicode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="COLOUR" type="AR:DISPLAY-HW-COLOUR-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>If the display can show objects in monochrome, grey scale or in colour.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESOLUTION-RATION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the ratio of the display resolution in horizontal versus vertical direction (e.g. 16 to 9).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESOLUTION-X" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the number of the smallest graphical elements which can be displayed in horizontal direction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESOLUTION-Y" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the number of the smallest graphical elements which can be displayed in vertical direction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESPONSE-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines how long it takes for the display to show a changed element at -20 degree C.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VIEWING-ANGLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the angle range where the display can be observed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SensorActuator::DisplayHW -->
  <xsd:complexType name="DISPLAY-HW" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Display HW element derives from HW Sensor Actuator and can be connected to a PU via a serial or parallel interface.
For the parallel mode the display can be connected to the data bus and address bus of a PU or to a peripheral.
The most common serial interface for displays are:
- I2C
- SPI
The most common physical interface for high resolution displays are the LVDS interface (Low Voltage Differential Signalling). This interface has three different lines for colours (RGB) and additional lines for control signals.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:SENSOR-ACTUATOR-HW"/>
      <xsd:group ref="AR:DISPLAY-HW"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Units::DisplayName -->
  <xsd:group name="DISPLAY-NAME">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Units::DisplayName -->
  <xsd:complexType name="DISPLAY-NAME" abstract="false" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AdminData::DocRevision -->
  <xsd:group name="DOC-REVISION">
    <xsd:annotation>
      <xsd:documentation>Use &lt;docRevision&gt; , to generate information on the corresponding document version.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="DOC-REVISION";msr.id="type__DOC-REVISION_TYPE";xml.sequence.offset="20"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="REVISION-LABEL" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use revisionLabel, to enter the version number of the document, or the document section to which administrative is applied.. The syntax is free and refers to the configuration management plan respectively the version management tool being used.
Therefore it is still kept as String.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="DOC-REVISION_TYPE__REVISION-LABEL";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REVISION-LABEL-P-1" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use revisionLabelP1, to enter the version number of the ** of the document, or the document section to which administrative is applied.. The syntax is free and refers to the configuration management plan respectively the version management tool being used. This element is used, if the document or document section is the result of a merge process in which two branches are merged in to one new revision.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="DOC-REVISION_TYPE__REVISION-LABEL-P1";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REVISION-LABEL-P-2" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use revisionLabelP1, to enter the version number of the ** of the document, or the document section to which administrative is applied.. The syntax is free and refers to the configuration management plan respectively the version management tool being used. This element is used, if the document or document section is the result of a merge process in which two branches are merged in to one new revision.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="DOC-REVISION_TYPE__REVISION-LABEL-P2";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STATE" type="AR:SINGLE-LANGUAGE-PLAIN-TEXT" minOccurs="0"/>
      <xsd:element name="ISSUED-BY" type="AR:SINGLE-LANGUAGE-PLAIN-TEXT" minOccurs="0"/>
      <xsd:element name="DATE" type="xsd:dateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This specifies the time, when the object in question was released</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="DOC-REVISION_TYPE__DATE";xml.sequenceOffset="80"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MODIFICATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODIFICATION" type="AR:MODIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AdminData::DocRevision -->
  <xsd:complexType name="DOC-REVISION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;docRevision&gt; , to generate information on the corresponding document version.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="DOC-REVISION";msr.id="type__DOC-REVISION_TYPE";xml.sequence.offset="20"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DOC-REVISION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DocumentationOnM1::Documentation -->
  <xsd:group name="DOCUMENTATION">
    <xsd:sequence>
      <xsd:element name="CONTEXT" type="AR:DOCUMENTATION-CONTEXT" minOccurs="0"/>
      <xsd:element name="ADD-INFO" type="AR:PREDEFINED-CHAPTER" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DocumentationOnM1::Documentation -->
  <xsd:complexType name="DOCUMENTATION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:DOCUMENTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BlockElements::DocumentationBlock -->
  <xsd:group name="DOCUMENTATION-BLOCK">
    <xsd:annotation>
      <xsd:documentation>This class represents a documentation block. It is made of basic text structure elements which can be displayed in a table cell.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NCOI-3_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="P" type="AR:MULTI-LANGUAGE-PARAGRAPH" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="VERBATIM" type="AR:MULTI-LANGUAGE-VERBATIM" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="FIGURE" type="AR:ML-FIGURE" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="FORMULA" type="AR:ML-FORMULA" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="LIST" type="AR:LIST" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="DEF-LIST" type="AR:DEF-LIST" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="LABELED-LIST" type="AR:LABELED-LIST" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="NOTE" type="AR:NOTE" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class BlockElements::DocumentationBlock -->
  <xsd:complexType name="DOCUMENTATION-BLOCK" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents a documentation block. It is made of basic text structure elements which can be displayed in a table cell.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NCOI-3_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:DOCUMENTATION-BLOCK"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <xsd:simpleType name="DOCUMENTATION-BLOCK--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DOCUMENTATION-BLOCK"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SoftwareComponentDocumentation::DocumentationContext -->
  <xsd:group name="DOCUMENTATION-CONTEXT">
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="FEATURE-IREF" type="AR:DOCUMENTATION-CONTEXT--FEATURE-IREF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="IDENTIFIABLE-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:IDENTIFIABLE--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class SoftwareComponentDocumentation::DocumentationContext -->
  <xsd:complexType name="DOCUMENTATION-CONTEXT" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:DOCUMENTATION-CONTEXT"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DocumentationOnM1::DocumentationContext_feature -->
  <xsd:group name="DOCUMENTATION-CONTEXT--FEATURE-IREF">
    <xsd:annotation>
      <xsd:documentation>This instance reference represents an arbitrary feature to be documented.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONTEXT-REF" minOccurs="0" maxOccurs="unbounded">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATP-FEATURE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FEATURE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATP-FEATURE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DocumentationOnM1::DocumentationContext_feature -->
  <xsd:complexType name="DOCUMENTATION-CONTEXT--FEATURE-IREF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This instance reference represents an arbitrary feature to be documented.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:DOCUMENTATION-CONTEXT--FEATURE-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::DynamicPart -->
  <xsd:group name="DYNAMIC-PART">
    <xsd:annotation>
      <xsd:documentation>Dynamic part of a multiplexed I-Pdu. 
Reserved space which is used to transport varying SignalIPdus at the same position, controlled by the corresponding selectorFieldCode.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DYNAMIC-PART-ALTERNATIVES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DYNAMIC-PART-ALTERNATIVE" type="AR:DYNAMIC-PART-ALTERNATIVE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::DynamicPart -->
  <xsd:complexType name="DYNAMIC-PART" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Dynamic part of a multiplexed I-Pdu. 
Reserved space which is used to transport varying SignalIPdus at the same position, controlled by the corresponding selectorFieldCode.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DYNAMIC-PART"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::DynamicPartAlternative -->
  <xsd:group name="DYNAMIC-PART-ALTERNATIVE">
    <xsd:annotation>
      <xsd:documentation>One of the Com IPdu alternatives that are transmitted in the Dynamic Part of the MultiplexedIPdu. The selectorFieldCode
specifies which Com IPdu is contained in the DynamicPart within a
certain transmission of a multiplexed PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SIGNAL-I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SELECTOR-FIELD-CODE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The selector field is part of a multiplexed IPdu. It consists of contiguous bits. The value of the selector field selects the layout of the multiplexed part of the IPdu.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::DynamicPartAlternative -->
  <xsd:complexType name="DYNAMIC-PART-ALTERNATIVE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>One of the Com IPdu alternatives that are transmitted in the Dynamic Part of the MultiplexedIPdu. The selectorFieldCode
specifies which Com IPdu is contained in the DynamicPart within a
certain transmission of a multiplexed PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTIPLEXED-PART"/>
      <xsd:group ref="AR:DYNAMIC-PART-ALTERNATIVE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUResourceTemplate::ECU -->
  <xsd:group name="ECU">
    <xsd:annotation>
      <xsd:documentation>The ECU provides information about an ECU and its internal hardware elements. The described hardware elements are related to some extent to basic software configuration and the AUTOSAR generation process.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-ABSTRACTION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::ECU -->
  <xsd:complexType name="ECU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ECU provides information about an ECU and its internal hardware elements. The described hardware elements are related to some extent to basic software configuration and the AUTOSAR generation process.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:HW-ELEMENT-CONTAINER"/>
      <xsd:group ref="AR:ECU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ECU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ECU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Peripherals::ECUCommunicationPort -->
  <xsd:group name="ECU-COMMUNICATION-PORT">
    <xsd:annotation>
      <xsd:documentation>A specialization of a Communication HW Port that is availabe for the inter ECU communication.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Peripherals::ECUCommunicationPort -->
  <xsd:complexType name="ECU-COMMUNICATION-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A specialization of a Communication HW Port that is availabe for the inter ECU communication.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:PERIPHERAL-HW-PORT"/>
      <xsd:group ref="AR:COMMUNICATION-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ECU-COMMUNICATION-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ECU-COMMUNICATION-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUElectronics::ECUElectronics -->
  <xsd:group name="ECU-ELECTRONICS">
    <xsd:annotation>
      <xsd:documentation>The abstract class ECU Electronics HW Element contains all elements and attributes common for all kind of ECU Electronics.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CAN-BE-DISABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the ECU Electronic can be enabled and disabled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUResourceMapping::ECUMapping -->
  <xsd:group name="ECU-MAPPING">
    <xsd:annotation>
      <xsd:documentation>ECUMapping allows to assign an ECU hardware type (defined in the ECU Resource Template) to an ECUInstance used in a physical topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMM-CONTROLLER-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMMUNICATION-CONTROLLER-MAPPING" type="AR:COMMUNICATION-CONTROLLER-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-INSTANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PORT-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="HW-PORT-MAPPING" type="AR:HW-PORT-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceMapping::ECUMapping -->
  <xsd:complexType name="ECU-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>ECUMapping allows to assign an ECU hardware type (defined in the ECU Resource Template) to an ECUInstance used in a physical topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ECU-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ExecutionTime::ECUPrototype -->
  <xsd:group name="ECU-PROTOTYPE">
    <xsd:sequence>
      <xsd:element name="E-CU-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::ECUPrototype -->
  <xsd:complexType name="ECU-PROTOTYPE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ECU-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ExecutionOrderConstraint::EOCExecutableEntityRef -->
  <xsd:group name="EOC-EXECUTABLE-ENTITY-REF">
    <xsd:annotation>
      <xsd:documentation>This is used to define a reference to an executable entity and its successors in the execution order.

If the execution order is defined on system level, a reference to the component that the referenced runnable entity belongs to, must be provided as context information.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EXECUTABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:EXECUTABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SUCCESSORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="EOC-EXECUTABLE-ENTITY-REF" type="AR:EOC-EXECUTABLE-ENTITY-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionOrderConstraint::EOCExecutableEntityRef -->
  <xsd:complexType name="EOC-EXECUTABLE-ENTITY-REF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to define a reference to an executable entity and its successors in the execution order.

If the execution order is defined on system level, a reference to the component that the referenced runnable entity belongs to, must be provided as context information.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EOC-EXECUTABLE-ENTITY-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::EcuAbstractionComponentType -->
  <xsd:group name="ECU-ABSTRACTION-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>The ECUAbstraction is a special AtomicSoftwareComponent that sits between a component that wants to access ECU periphery and the Microcontroller Abstraction. The EcuAbstractionComponentType introduces the possibility to link from the software representation to its hardware description provided by the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="HARDWARE-ELEMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="HARDWARE-ELEMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-ELEMENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Components::EcuAbstractionComponentType -->
  <xsd:complexType name="ECU-ABSTRACTION-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ECUAbstraction is a special AtomicSoftwareComponent that sits between a component that wants to access ECU periphery and the Microcontroller Abstraction. The EcuAbstractionComponentType introduces the possibility to link from the software representation to its hardware description provided by the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
      <xsd:group ref="AR:ECU-ABSTRACTION-COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::EcuConfiguration -->
  <xsd:group name="ECU-CONFIGURATION">
    <xsd:annotation>
      <xsd:documentation>This represents the anchor point of the ECU configuration description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-EXTRACT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODULE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODULE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:MODULE-CONFIGURATION--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::EcuConfiguration -->
  <xsd:complexType name="ECU-CONFIGURATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This represents the anchor point of the ECU configuration description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ECU-CONFIGURATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ECU-CONFIGURATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ECU-CONFIGURATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreTopology::EcuInstance -->
  <xsd:group name="ECU-INSTANCE">
    <xsd:annotation>
      <xsd:documentation>ECUInstances are used to define the ECUs used in the topology. The type of the ECU is defined by a reference to an ECU specified with the ECU resource description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ASSOCIATED-I-PDU-GROUP-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ASSOCIATED-I-PDU-GROUP-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:I-PDU-GROUP--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COM-PROCESSING-PERIOD" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The COM scheduling time is used in order to be able to calculate the worst case bus timing. The processing period shall be specified AUTOSAR conform in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="COMM-CONTROLLERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-COMMUNICATION-CONTROLLER" type="AR:CAN-COMMUNICATION-CONTROLLER"/>
            <xsd:element name="COMMUNICATION-CONTROLLER" type="AR:COMMUNICATION-CONTROLLER"/>
            <xsd:element name="ETHERNET-COMMUNICATION-CONTROLLER" type="AR:ETHERNET-COMMUNICATION-CONTROLLER"/>
            <xsd:element name="FLEXRAY-COMMUNICATION-CONTROLLER" type="AR:FLEXRAY-COMMUNICATION-CONTROLLER"/>
            <xsd:element name="LIN-MASTER" type="AR:LIN-MASTER"/>
            <xsd:element name="LIN-SLAVE" type="AR:LIN-SLAVE"/>
            <xsd:element name="TTCAN-COMMUNICATION-CONTROLLER" type="AR:TTCAN-COMMUNICATION-CONTROLLER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONNECTORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMMUNICATION-CONNECTOR" type="AR:COMMUNICATION-CONNECTOR"/>
            <xsd:element name="ETHERNET-COMMUNICATION-CONNECTOR" type="AR:ETHERNET-COMMUNICATION-CONNECTOR"/>
            <xsd:element name="FLEXRAY-COMMUNICATION-CONNECTOR" type="AR:FLEXRAY-COMMUNICATION-CONNECTOR"/>
            <xsd:element name="LIN-COMMUNICATION-CONNECTOR" type="AR:LIN-COMMUNICATION-CONNECTOR"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DIAGNOSTIC-ADDRESS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>An ECU specific ID for responses of diagnostic routines.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SLEEP-MODE-SUPPORTED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies whether the ECU instance may be put to a "low power mode" TRUE: sleep mode is supported FALSE: sleep mode is not supported 

Note: This flag may only be set to TRUE if the feature is supported by both hardware and basic software.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TP-ADDRESS-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-ADDRESS-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="WAKE-UP-OVER-BUS-SUPPORTED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Driver support for wakeup over Bus.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreTopology::EcuInstance -->
  <xsd:complexType name="ECU-INSTANCE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>ECUInstances are used to define the ECUs used in the topology. The type of the ECU is defined by a reference to an ECU specified with the ECU resource description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ECU-INSTANCE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="ECU-INSTANCE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ECU-INSTANCE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCParameterDefTemplate::EcuParameterDefinition -->
  <xsd:group name="ECU-PARAMETER-DEFINITION">
    <xsd:annotation>
      <xsd:documentation>This represents the anchor point of an ECU Configuration Parameter Definition within the AUTOSAR templates structure.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODULE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODULE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:MODULE-DEF--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::EcuParameterDefinition -->
  <xsd:complexType name="ECU-PARAMETER-DEFINITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This represents the anchor point of an ECU Configuration Parameter Definition within the AUTOSAR templates structure.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ECU-PARAMETER-DEFINITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::EcuParameterDerivationFormula -->
  <xsd:group name="ECU-PARAMETER-DERIVATION-FORMULA">
    <xsd:annotation>
      <xsd:documentation>This formula is intended to specify how an ecu parameter can be derived from other information in the Autosar Templates.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="ECU-PARAM-DEF-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:CONFIG-PARAMETER--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="ECUC-QUERY-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:ECUC-QUERY-EXPRESSION--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::EcuParameterDerivationFormula -->
  <xsd:complexType name="ECU-PARAMETER-DERIVATION-FORMULA" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This formula is intended to specify how an ecu parameter can be derived from other information in the Autosar Templates.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:ECU-PARAMETER-DERIVATION-FORMULA"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SWmapping::EcuResourceEstimation -->
  <xsd:group name="ECU-RESOURCE-ESTIMATION">
    <xsd:annotation>
      <xsd:documentation>Resource estimations for RTE and BSW of a single ECU instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-RESOURCE-ESTIMATION" type="AR:RESOURCE-CONSUMPTION" minOccurs="0"/>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:element name="ECU-INSTANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RTE-RESOURCE-ESTIMATION" type="AR:RESOURCE-CONSUMPTION" minOccurs="0"/>
      <xsd:element name="SW-COMP-TO-ECU-MAPPING-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-COMP-TO-ECU-MAPPING-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:SWC-TO-ECU-MAPPING--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SWmapping::EcuResourceEstimation -->
  <xsd:complexType name="ECU-RESOURCE-ESTIMATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Resource estimations for RTE and BSW of a single ECU instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ECU-RESOURCE-ESTIMATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::EcuStateMgrUserNeeds -->
  <xsd:group name="ECU-STATE-MGR-USER-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the ECU State  Manager for one "user". This class currently contains no attributes. Its name can be regarded as a symbol identifying the user  from the viewpoint of the component or module which owns this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::EcuStateMgrUserNeeds -->
  <xsd:complexType name="ECU-STATE-MGR-USER-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the ECU State  Manager for one "user". This class currently contains no attributes. Its name can be regarded as a symbol identifying the user  from the viewpoint of the component or module which owns this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Timing::EcuTiming -->
  <xsd:group name="ECU-TIMING">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints within the scope of one ECU configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-CONFIGURATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-CONFIGURATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::EcuTiming -->
  <xsd:complexType name="ECU-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints within the scope of one ECU configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TIMING"/>
      <xsd:group ref="AR:ECU-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::EcucQueryExpression -->
  <xsd:group name="ECUC-QUERY-EXPRESSION">
    <xsd:sequence>
      <xsd:element name="ECU-CONFIG-PARAM-DEF-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CONFIG-REFERENCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::EcucQueryExpression -->
  <xsd:complexType name="ECUC-QUERY-EXPRESSION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ECUC-QUERY-EXPRESSION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <xsd:simpleType name="ECUC-QUERY-EXPRESSION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ECUC-QUERY-EXPRESSION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BasicElements::ElectricalRange -->
  <xsd:group name="ELECTRICAL-RANGE">
    <xsd:annotation>
      <xsd:documentation>Specifies electrical ranges for different applications within the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAX-CURRENT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum Current
Unit: A</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-VOLTAGE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum voltage
Unit: V</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-CURRENT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum Current
Unit: A</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-VOLTAGE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum voltage
Unit: V</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPICAL-CURRENT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Typical Current
Unit: A</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPICAL-VOLTAGE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Typical voltage
Unit: V</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BasicElements::ElectricalRange -->
  <xsd:complexType name="ELECTRICAL-RANGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies electrical ranges for different applications within the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ELECTRICAL-RANGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::EmphasisText -->
  <xsd:group name="EMPHASIS-TEXT">
    <xsd:annotation>
      <xsd:documentation>This is an emphasized text. As a compromise it contains some rendering oriented attributes such as color and font.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__E_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>this is subscript text</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>This is superscript text</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- attribute group for class InlineTextElements::EmphasisText -->
  <xsd:attributeGroup name="EMPHASIS-TEXT">
    <xsd:annotation>
      <xsd:documentation>This is an emphasized text. As a compromise it contains some rendering oriented attributes such as color and font.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__E_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="COLOR" type="xsd:string"/>
    <xsd:attribute name="FONT" type="AR:E-ENUM-FONT"/>
    <xsd:attribute name="TYPE" type="AR:E-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates how the text may be emphaiszed. Note that this is only a propsal which can be overridden or ignored by particular formatting engines. Default is BOLD.</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="BOLD";msr.id="E_TYPE__E_TYPE__TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class InlineTextElements::EmphasisText -->
  <xsd:complexType name="EMPHASIS-TEXT" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This is an emphasized text. As a compromise it contains some rendering oriented attributes such as color and font.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__E_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:EMPHASIS-TEXT"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:EMPHASIS-TEXT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::EmptySignalMapping -->
  <xsd:group name="EMPTY-SIGNAL-MAPPING">
    <xsd:annotation>
      <xsd:documentation>According to the COM Specification, signal groups without signals are allowed. These have a "signalLength" = 0. In this case there shall be an "update-bit" configured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::EmptySignalMapping -->
  <xsd:complexType name="EMPTY-SIGNAL-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>According to the COM Specification, signal groups without signals are allowed. These have a "signalLength" = 0. In this case there shall be an "update-bit" configured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EMPTY-SIGNAL-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class IssueEnvironment::EngineeringObject -->
  <xsd:group name="ENGINEERING-OBJECT">
    <xsd:annotation>
      <xsd:documentation>This class specifies an engineering object. The properties are such that the artifact can be found either by naming conventions or by querying an ASAM catalog file.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SHORT-LABEL" type="xsd:NMTOKEN" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the short name of the engineering object.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="10"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CATEGORY" type="xsd:NMTOKEN" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the role of the engineering object in the development process. Example for such a role is "C-SOURCE", "LIBRARY" etc.
Such roles need to be defined via Methodology.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REVISION-LABELS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="REVISION-LABEL" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>This is a revision label denoting a particular version of the engineering object.</xsd:documentation>
                <xsd:appinfo source="tags">xml.sequenceOffset="30"</xsd:appinfo>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DOMAIN" type="xsd:NMTOKEN" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This denotes the domain in which the engineering object is stored. This allows to indicate various segments in the repostirory keeping the engineering objects. The domain may segregate companies, as well as automotive domains. Details need to be defined by the Methodology.

Attribute is optional to support a default domain.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class OasisExchangeTable::Entry -->
  <xsd:group name="ENTRY">
    <xsd:annotation>
      <xsd:documentation>Use &lt;entry&gt; , that contains a paragraph element to display the contents of a table cell.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ENTRY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:DOCUMENTATION-BLOCK"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class OasisExchangeTable::Entry -->
  <xsd:attributeGroup name="ENTRY">
    <xsd:annotation>
      <xsd:documentation>Use &lt;entry&gt; , that contains a paragraph element to display the contents of a table cell.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ENTRY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="ALIGN" type="AR:ALIGN-ENUM"/>
    <xsd:attribute name="COLNAME" type="xsd:string"/>
    <xsd:attribute name="COLSEP" type="xsd:string"/>
    <xsd:attribute name="MOREROWS" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Number of additional rows. Default is "0"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="0";msr.id="ENTRY_TYPE__ENTRY_TYPE__MOREROWS";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="NAMEEND" type="xsd:string"/>
    <xsd:attribute name="NAMEST" type="xsd:string"/>
    <xsd:attribute name="ROTATE" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Indicates if the cellcontent shall be rotated. Default is 0; 1 would rotate the contents 90 degree counterclockwise. This attribute is defined by OASIS.</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="0";msr.id="ENTRY_TYPE__ENTRY_TYPE__ROTATE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="ROWSEP" type="xsd:string"/>
    <xsd:attribute name="SPANNAME" type="xsd:string"/>
    <xsd:attribute name="VALIGN" type="AR:VALIGN-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates how the content of the cell shall be aligned. Default is inherited from row or tbody, otherwise "TOP"</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="ENTRY_TYPE__ENTRY_TYPE__VALIGN";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class OasisExchangeTable::Entry -->
  <xsd:complexType name="ENTRY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;entry&gt; , that contains a paragraph element to display the contents of a table cell.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ENTRY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ENTRY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:ENTRY"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::EnumerationLiteralDef -->
  <xsd:group name="ENUMERATION-LITERAL-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for enumeration literals definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::EnumerationLiteralDef -->
  <xsd:complexType name="ENUMERATION-LITERAL-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for enumeration literals definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::EnumerationParamDef -->
  <xsd:group name="ENUMERATION-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Enumeration.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Default value of the enumeration configuration parameter. This string nees to be one of the literals specified for this enumeration.

atpVariation: [ECUC00083]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LITERALS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ENUMERATION-LITERAL-DEF" type="AR:ENUMERATION-LITERAL-DEF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::EnumerationParamDef -->
  <xsd:complexType name="ENUMERATION-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Enumeration.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:ENUMERATION-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BasicElements::ErrorDetectionCorrection -->
  <xsd:group name="ERROR-DETECTION-CORRECTION">
    <xsd:annotation>
      <xsd:documentation>Provides information on what extra bits are used for error detection and correction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CORRECTED-BITS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>How many error bits can be corrected.
Unit: Bit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DETECTED-BITS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>How many bit errors can be reconginsed.
Unit: Bit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXTRA-BITS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>How many extra bits are used for ensuring error detection and correction.
Unit: Bit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BasicElements::ErrorDetectionCorrection -->
  <xsd:complexType name="ERROR-DETECTION-CORRECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Provides information on what extra bits are used for error detection and correction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ERROR-DETECTION-CORRECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EthernetTopology::EthernetCommunicationCluster -->
  <xsd:group name="ETHERNET-COMMUNICATION-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class EthernetTopology::EthernetCommunicationCluster -->
  <xsd:complexType name="ETHERNET-COMMUNICATION-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class EthernetTopology::EthernetCommunicationConnector -->
  <xsd:group name="ETHERNET-COMMUNICATION-CONNECTOR">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific attributes to the CommunicationConnector</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="IP-ADDRESS" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Logical address that is assigned to devices in a network utilizing the Internet Protocol for communication between its nodes.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EthernetTopology::EthernetCommunicationConnector -->
  <xsd:complexType name="ETHERNET-COMMUNICATION-CONNECTOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific attributes to the CommunicationConnector</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CONNECTOR"/>
      <xsd:group ref="AR:ETHERNET-COMMUNICATION-CONNECTOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class EthernetTopology::EthernetCommunicationController -->
  <xsd:group name="ETHERNET-COMMUNICATION-CONTROLLER">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAXIMUM-RECEIVE-BUFFER-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Determines the maximum receive buffer length (frame length) in bytes.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMUM-TRANSMIT-BUFFER-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Determines the maximum transmit buffer length (frame length) in bytes.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EthernetTopology::EthernetCommunicationController -->
  <xsd:complexType name="ETHERNET-COMMUNICATION-CONTROLLER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ETHERNET-COMMUNICATION-CONTROLLER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class EthernetCommunication::EthernetFrameTriggering -->
  <xsd:group name="ETHERNET-FRAME-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESTINATION-PORT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Destination Port for TCP/UDP connection. May be different for each Frame or use the same destination port. In second case identifer attribute needs to be considered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IDENTIFIER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Identifier is required in case of one port per ECU communication where multiple Frames shall be transmitted over the same connection.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROTOCOL-TYPE" type="AR:TRANSPORT-PROTOCOL-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Transport Protocols are responsible for encapsulating application data blocks into datagrams suitable for transfer to the network infrastructure for transmission to the destination host, or managing the reverse transaction by abstracting network datagrams and delivering them to an application.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SOURCE-PORT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Source Port for TCP/UDP connection. In case the source port is fixed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EthernetCommunication::EthernetFrameTriggering -->
  <xsd:complexType name="ETHERNET-FRAME-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Ethernet specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME-TRIGGERING"/>
      <xsd:group ref="AR:ETHERNET-FRAME-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Timing::EventControlledTiming -->
  <xsd:group name="EVENT-CONTROLLED-TIMING">
    <xsd:annotation>
      <xsd:documentation>Specification of a event driven sending behavior. The PDU is sent "numberOfRepeats" times separated by the repetitionPeriod. If numberOfRepeats = 1, then the Pdu is sent just once.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NUMBER-OF-REPETITIONS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the number of repetitions for the Direct/N-Times transmission mode and the event driven part of Mixed transmission mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REPETITION-PERIOD" type="AR:TIME-RANGE-TYPE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::EventControlledTiming -->
  <xsd:complexType name="EVENT-CONTROLLED-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specification of a event driven sending behavior. The PDU is sent "numberOfRepeats" times separated by the repetitionPeriod. If numberOfRepeats = 1, then the Pdu is sent just once.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EVENT-CONTROLLED-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EventTriggeringConstraint::EventTriggeringConstraint -->
  <xsd:group name="EVENT-TRIGGERING-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>Describes the occurrence behavior of the referenced observable event.

The occurrence behavior can only be determined when a mapping from the observable events to the implementation can be obtained. However, such an occurrence behavior can also be described by the modeler as assumption or as requirement about the occurrence of the event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIMING-DESCRIPTION-EVENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class InternalBehavior::ExclusiveArea -->
  <xsd:group name="EXCLUSIVE-AREA">
    <xsd:annotation>
      <xsd:documentation>Prevents an executable entity running in the area from being preempted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class InternalBehavior::ExclusiveArea -->
  <xsd:complexType name="EXCLUSIVE-AREA" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Prevents an executable entity running in the area from being preempted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="EXCLUSIVE-AREA--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="EXCLUSIVE-AREA"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class InternalBehavior::ExecutableEntity -->
  <xsd:group name="EXECUTABLE-ENTITY">
    <xsd:annotation>
      <xsd:documentation>Abstraction of executable code.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="EXECUTABLE-ENTITY--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-INTERRUPT-ENTITY"/>
      <xsd:enumeration value="BSW-MODULE-ENTITY"/>
      <xsd:enumeration value="BSW-SCHEDULABLE-ENTITY"/>
      <xsd:enumeration value="RUNNABLE-ENTITY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ExecutionOrderConstraint::ExecutionOrderConstraint -->
  <xsd:group name="EXECUTION-ORDER-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This constraint is used to restrict the order of execution for a set of executable entities.

On component level an ExecutionOrderConstraint can be defined for runnable enitities of the same InternalBehavior as part of a SwcTiming, or for BSW module entities of the same BswBehavior as part of a BswModuleTiming.

On system level an ExecutionOrderConstraint can be defined for runnable entities belonging to the same SoftwareComposition as part of a SystemTiming.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ORDERED-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="EOC-EXECUTABLE-ENTITY-REF" type="AR:EOC-EXECUTABLE-ENTITY-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionOrderConstraint::ExecutionOrderConstraint -->
  <xsd:complexType name="EXECUTION-ORDER-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This constraint is used to restrict the order of execution for a set of executable entities.

On component level an ExecutionOrderConstraint can be defined for runnable enitities of the same InternalBehavior as part of a SwcTiming, or for BSW module entities of the same BswBehavior as part of a BswModuleTiming.

On system level an ExecutionOrderConstraint can be defined for runnable entities belonging to the same SoftwareComposition as part of a SystemTiming.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EXECUTION-ORDER-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ExecutionTime::ExecutionTime -->
  <xsd:group name="EXECUTION-TIME">
    <xsd:annotation>
      <xsd:documentation>Base class for several means how to describe the ExecutionTime of software. The required context information is provided through this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU" type="AR:ECU-PROTOTYPE" minOccurs="0"/>
      <xsd:element name="EXCLUSIVE-AREA-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:EXCLUSIVE-AREA--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="HARDWARE-CONFIGURATION" type="AR:HARDWARE-CONFIGURATION" minOccurs="0"/>
      <xsd:element name="MEMORY-SECTION-LOCATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MEMORY-SECTION-LOCATION" type="AR:MEMORY-SECTION-LOCATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RUNNABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:EXECUTABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SOFTWARE-CONTEXT" type="AR:SOFTWARE-CONTEXT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::ExecutionTime -->
  <xsd:complexType name="EXECUTION-TIME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Base class for several means how to describe the ExecutionTime of software. The required context information is provided through this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:EXECUTION-TIME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::ExternalTriggerOccurredEvent -->
  <xsd:group name="EXTERNAL-TRIGGER-OCCURRED-EVENT">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced trigger have been occurred.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGER-IREF" type="AR:EXTERNAL-TRIGGER-OCCURRED-EVENT--TRIGGER-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::ExternalTriggerOccurredEvent -->
  <xsd:complexType name="EXTERNAL-TRIGGER-OCCURRED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced trigger have been occurred.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:EXTERNAL-TRIGGER-OCCURRED-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::ExternalTriggerOccurredEvent_trigger -->
  <xsd:group name="EXTERNAL-TRIGGER-OCCURRED-EVENT--TRIGGER-IREF">
    <xsd:sequence>
      <xsd:element name="R-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRIGGER-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::ExternalTriggerOccurredEvent_trigger -->
  <xsd:complexType name="EXTERNAL-TRIGGER-OCCURRED-EVENT--TRIGGER-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:EXTERNAL-TRIGGER-OCCURRED-EVENT--TRIGGER-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Trigger::ExternalTriggeringPoint -->
  <xsd:group name="EXTERNAL-TRIGGERING-POINT">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a ExternalTriggeringPoint, it has the possibility to inform the RTE about the occurrence of a Trigger event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGER-IREF" type="AR:EXTERNAL-TRIGGERING-POINT--TRIGGER-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Trigger::ExternalTriggeringPoint -->
  <xsd:complexType name="EXTERNAL-TRIGGERING-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a ExternalTriggeringPoint, it has the possibility to inform the RTE about the occurrence of a Trigger event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EXTERNAL-TRIGGERING-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::ExternalTriggeringPoint_trigger -->
  <xsd:group name="EXTERNAL-TRIGGERING-POINT--TRIGGER-IREF">
    <xsd:sequence>
      <xsd:element name="P-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:P-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRIGGER-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::ExternalTriggeringPoint_trigger -->
  <xsd:complexType name="EXTERNAL-TRIGGERING-POINT--TRIGGER-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:EXTERNAL-TRIGGERING-POINT--TRIGGER-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class FibexCore::FibexElement -->
  <xsd:group name="FIBEX-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>ASAM FIBEX elements specifying Communication and Topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="FIBEX-ELEMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-CLUSTER"/>
      <xsd:enumeration value="CAN-TP-CONFIG"/>
      <xsd:enumeration value="COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="DATA-N-PDU"/>
      <xsd:enumeration value="DCM-I-PDU"/>
      <xsd:enumeration value="ECU-INSTANCE"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-TP-CONFIG"/>
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
      <xsd:enumeration value="FRAME"/>
      <xsd:enumeration value="GATEWAY"/>
      <xsd:enumeration value="I-PDU-GROUP"/>
      <xsd:enumeration value="I-SIGNAL"/>
      <xsd:enumeration value="J-1939-TP-CONFIG"/>
      <xsd:enumeration value="LIN-CLUSTER"/>
      <xsd:enumeration value="LIN-EVENT-TRIGGERED-FRAME"/>
      <xsd:enumeration value="LIN-SPORADIC-FRAME"/>
      <xsd:enumeration value="LIN-TP-CONFIG"/>
      <xsd:enumeration value="LIN-UNCONDITIONAL-FRAME"/>
      <xsd:enumeration value="MULTIPLEXED-I-PDU"/>
      <xsd:enumeration value="NM-CONFIG"/>
      <xsd:enumeration value="NM-PDU"/>
      <xsd:enumeration value="SIGNAL-I-PDU"/>
      <xsd:enumeration value="TTCAN-CLUSTER"/>
      <xsd:enumeration value="XCP-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class FlatMap::FlatInstanceDescriptor -->
  <xsd:group name="FLAT-INSTANCE-DESCRIPTOR">
    <xsd:annotation>
      <xsd:documentation>Represents exactly one node (e.g. a component instance or data element) of the instance tree of a software system. The purpose of this element is to map the various nested representations of this instance to a flat representation and, if applicable, assign a shortLabel to it. 

Use cases: 
* Specify the display name of measurable data and let the A2L generator find the properties (via the attached references) assigned to these data.
* Specify a unique name for an instance of a component prototype in the ECU extract of the system description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-EXTRACT-REFERENCE" type="AR:ANY-INSTANCE-REF" minOccurs="0"/>
      <xsd:element name="SHORT-LABEL" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Name of this instance which can be used as a display name by MCD tools  or as a name for component instances in the ECU extract. This name shall be pre-generated from the system decription but it may be edited at ECU integration time.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UPSTREAM-REFERENCE" type="AR:ANY-INSTANCE-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlatMap::FlatInstanceDescriptor -->
  <xsd:complexType name="FLAT-INSTANCE-DESCRIPTOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Represents exactly one node (e.g. a component instance or data element) of the instance tree of a software system. The purpose of this element is to map the various nested representations of this instance to a flat representation and, if applicable, assign a shortLabel to it. 

Use cases: 
* Specify the display name of measurable data and let the A2L generator find the properties (via the attached references) assigned to these data.
* Specify a unique name for an instance of a component prototype in the ECU extract of the system description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FLAT-INSTANCE-DESCRIPTOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class FlatMap::FlatMap -->
  <xsd:group name="FLAT-MAP">
    <xsd:annotation>
      <xsd:documentation>Root element of a flat list of references to software objects.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INSTANCES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FLAT-INSTANCE-DESCRIPTOR" type="AR:FLAT-INSTANCE-DESCRIPTOR"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlatMap::FlatMap -->
  <xsd:complexType name="FLAT-MAP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Root element of a flat list of references to software objects.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FLAT-MAP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class FlexrayCommunication::FlexrayAbsolutelyScheduledTiming -->
  <xsd:group name="FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING">
    <xsd:annotation>
      <xsd:documentation>Each frame in FlexRay is identified by its slot id and communication cycle. A description is provided by the usage of AbsolutelyScheduledTiming. 

In the static segment a frame can be sent multiple times within one communication cycle. For describing this case multiple AbsolutelyScheduledTimings have to be used. The main use case would be that a frame is sent twice within one communication cycle.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-CYCLE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="CYCLE-COUNTER" type="AR:CYCLE-COUNTER"/>
            <xsd:element name="CYCLE-REPETITION" type="AR:CYCLE-REPETITION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SLOT-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>In the static part the SlotID defines the slot in which the frame is transmitted. 
The SlotID also determines, in combination with FlexrayCluster::numberOfStaticSlots, whether the frame is sent in static or dynamic segment. 
In the dynamic part, the slot id is equivalent to a priority. Lower dynamic slot ids are all sent until the end of the dynamic segment. Higher numbers, which were ignored that time, have to wait one cycle and then must try again.

minValue: 1
maxValue: 2047</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlexrayCommunication::FlexrayAbsolutelyScheduledTiming -->
  <xsd:complexType name="FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Each frame in FlexRay is identified by its slot id and communication cycle. A description is provided by the usage of AbsolutelyScheduledTiming. 

In the static segment a frame can be sent multiple times within one communication cycle. For describing this case multiple AbsolutelyScheduledTimings have to be used. The main use case would be that a frame is sent twice within one communication cycle.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class FlexrayTopology::FlexrayCluster -->
  <xsd:group name="FLEXRAY-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the physicalCluster</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTION-POINT-OFFSET" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The offset of the action point in networks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BIT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Nominal bit time (= 1 / fx:SPEED). gdBit = cSamplesPerBit * gdSampleClockPeriod. Unit: seconds (gdBit)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CAS-RX-LOW-MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Upper limit of the Collision Avoidance Symbol (CAS) acceptance window. Unit:bitDuration</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CLUSTER-DRIFT-DAMPING" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The cluster drift damping factor, expressed in multiples of the smallest microtick used in the cluster. Used to compute the local cluster drift damping factor pClusterDriftDamping. Unit:µT (gClusterDriftDamping)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="COLD-START-ATTEMPTS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum number of times that a node in this cluster is permitted to attempt to start the cluster by initiating schedule synchronization</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CYCLE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of the cycle. Unit: seconds</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DYNAMIC-SLOT-IDLE-PHASE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The duration of the dynamic slot idle phase in minislots.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LISTEN-NOISE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Upper limit for the start up and wake up listen timeout in the presence of noise. Expressed as a multiple of the cluster constant pdListenTimeout. Unit microticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MACRO-PER-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of macroticks in a communication cycle</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MACROTICK-DURATION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Duration of the cluster wide nominal macrotick, expressed in seconds</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-INITIALISATION-ERROR" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum error that a node may have after initialization. Unit: seconds</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-PROPAGATION-DELAY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum propagation delay of a Cluster (in seconds).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-WITHOUT-CLOCK-CORRECTION-FATAL" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Threshold concerning vClockCorrectionFailedCounter. Defines the number of consecutive even/odd Cycle pairs with missing clock correction terms that will cause the protocol to transition from the POC:normal active or POC:normal passive state into the POC:halt state.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-WITHOUT-CLOCK-CORRECTION-PASSIVE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Threshold concerning vClockCorrectionFailedCounter. Defines the number of consecutive even/odd Cycle pairs with missing clock correction terms that will cause the protocol to transition from the POC:normal active state to the POC:normal passive state.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-PROPAGATION-DELAY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum propagation delay of a Cluster (in seconds).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINISLOT-ACTION-POINT-OFFSET" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The Offset of the action point within a minislot. Unit: macroticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINISLOT-DURATION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The duration of a minislot (dynamic segment). Unit: macroticks.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NETWORK-IDLE-TIME" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The duration of the network idle time in macroticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NUMBER-OF-MINISLOTS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>number of Minislots in the dynamic segment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NUMBER-OF-STATIC-SLOTS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of static slots in the static segment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OFFSET-CORRECTION-MAX" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Cluster global magnitude of the maximum permissible offset correction value Unit: seconds (gOffsetCorrectionMax)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OFFSET-CORRECTION-START" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Start of the offset correction phase within the Network Idle Time (NIT), expressed as the number of macroticks from the start of cycle. Unit: macroticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PAYLOAD-LENGTH-STATIC" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Globally configured payload length of a static frame. Unit: 16-bit WORDS.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SAMPLE-CLOCK-PERIOD" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Sample clock period. Unit: seconds</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STATIC-SLOT-DURATION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The duration of a slot in the static segment. Unit: macroticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SYMBOL-WINDOW" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The duration of the symbol window. Unit: macroticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SYNC-NODE-MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum number of sync nodes allowed in the cluster</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TRANSMISSION-START-SEQUENCE-DURATION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits in the Transmission Start Sequence [gdBits].</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-SYMBOL-RX-IDLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits used by the node to test the duration of the idle portion of a received wake up symbol.  Unit:bitDuration</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-SYMBOL-RX-LOW" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits used by the node to test the LOW portion of a received wake up symbol. 
Unit:bitDuration</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-SYMBOL-RX-WINDOW" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits used by a node to test the overall duration of a received wake up symbol. Unit: gdBit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-SYMBOL-TX-IDLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits used by the node to transmit the idle part of a wake up symbol. Unit: gDbit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-SYMBOL-TX-LOW" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits used by the node to transmit the LOW part of a wake up symbol. Unit:bitDuration</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlexrayTopology::FlexrayCluster -->
  <xsd:complexType name="FLEXRAY-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the physicalCluster</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CLUSTER"/>
      <xsd:group ref="AR:FLEXRAY-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FLEXRAY-CLUSTER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLEXRAY-CLUSTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class FlexrayTopology::FlexrayCommunicationConnector -->
  <xsd:group name="FLEXRAY-COMMUNICATION-CONNECTOR">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the CommunicationConnector</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MACRO-INITIAL-OFFSET-A" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>number of macroticks which describe the distance between the static slot boundary and the closed macrotick boundary of the secondary time reference point using the initial configured macrotick length</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MACRO-INITIAL-OFFSET-B" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>number of macroticks which describe the distance between the static slot boundary and the closed macrotick boundary of the secondary time reference point using the initial configured macrotick length</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-CHANNEL" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Referenced channel used by the node to send a wakeup pattern. (pWakeupChannel)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlexrayTopology::FlexrayCommunicationConnector -->
  <xsd:complexType name="FLEXRAY-COMMUNICATION-CONNECTOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the CommunicationConnector</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CONNECTOR"/>
      <xsd:group ref="AR:FLEXRAY-COMMUNICATION-CONNECTOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class FlexrayTopology::FlexrayCommunicationController -->
  <xsd:group name="FLEXRAY-COMMUNICATION-CONTROLLER">
    <xsd:annotation>
      <xsd:documentation>FlexRay bus specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCEPTED-STARTUP-RANGE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Expanded range of measured clock deviation allowed for startup frames during integration. Unit:microtick</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ALLOW-HALT-DUE-TO-CLOCK" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Boolean flag that controls the transition to the POC:halt state due to a clock synchronization errors. 
If set to true, the Communication Controller is allowed to transition to POC:halt. 
If set to false, the Communication Controller will not transition to the POC:halt state but will enter or remain in the normal POC (passive State).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ALLOW-PASSIVE-TO-ACTIVE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of consecutive even/odd cycle pairs that must have valid clock correction terms before the Communication Controller will be allowed to transition from the POC:normal passive state to POC:normal active state. If set to 0, the Communication Controller is not allowed to transition from POC:norm</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CLUSTER-DRIFT-DAMPING" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The cluster drift damping factor used in clock synchronization rate correction in microticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DECODING-CORRECTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value used by the receiver to calculate the difference between primary time reference point and secondary time reference point. Unit: Microticks (pDecodingCorrection)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DELAY-COMPENSATION-A" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value used to compensate for reception delays on channel A Unit: Microticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DELAY-COMPENSATION-B" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value used to compensate for reception delays on channel B. Unit: Microticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXTERN-OFFSET-CORRECTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Fixed amount added or subtracted to the calculated offset correction term to facilitate external offset correction, expressed in node-local microticks.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXTERN-RATE-CORRECTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Fixed amount added or subtracted to the calculated rate correction term to facilitate external rate correction, expressed in node-local microticks.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXTERNAL-SYNC" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating whether the node is externally synchronized (operating as Time Gateway Sink in an TT-E Time Triggered External Sync cluster) or locally synchronized.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="FALL-BACK-INTERNAL" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating whether a Time Gateway Sink node will switch to local clock operation when synchronization with the Time Gateway Source node is lost (pFallBackInternal = true) or will instead go to POC:ready (pFallBackInternal = false).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="KEY-SLOT-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>ID of the slot used to transmit the startup frame, sync frame, or designated single slot frame.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="KEY-SLOT-ONLY-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating whether or not the node shall enter key slot only mode following startup.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="KEY-SLOT-USED-FOR-START-UP" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating whether the Key Slot is used to transmit a startup frame.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="KEY-SLOT-USED-FOR-SYNC" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating whether the Key Slot is used to transmit a sync frame.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LATEST-TX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of the last minislot in which a transmission can start in the dynamic segment for the respective node</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LISTEN-TIMEOUT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Upper limit for the start up listen timeout and wake up listen timeout. Unit: Microticks</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MACRO-INITIAL-OFFSET-A" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Integer number of macroticks between the static slot boundary and the closest macrotick boundary of the secondary time reference point based on the nominal macrotick duration. (pMacroInitialOffset)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MACRO-INITIAL-OFFSET-B" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Integer number of macroticks between the static slot boundary and the closest macrotick boundary of the secondary time reference point based on the nominal macrotick duration. (pMacroInitialOffset)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMUM-DYNAMIC-PAYLOAD-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum payload length for the dynamic channel of a frame in 16 bit WORDS.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MICRO-INITIAL-OFFSET-A" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of microticks between the closest macrotick boundary described by gMacroInitialOffset and the secondary time reference point.  The parameter depends on pDelayCompensationA and therefore it has to be set independently for each channel.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MICRO-INITIAL-OFFSET-B" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of microticks between the closest macrotick boundary described by gMacroInitialOffset and the secondary time reference point.  The parameter depends on pDelayCompensationB and therefore it has to be set independently for each channel.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MICRO-PER-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The nominal number of microticks in a communication cycle</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MICROTICK-DURATION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Duration of a microtick. This attribute can be derived from samplePerMicrotick and gdSampleClockPeriod. 
Unit: seconds</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-VECTOR-EARLY-UPDATE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating when the update of the Network Management Vector in the CHI shall take place. If set to false, the update shall take place after the NIT. If set to true, the update shall take place after the end of the static segment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OFFSET-CORRECTION-OUT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Magnitude of the maximum permissible offset correction value. Unit:microtick (pOffsetCorrectionOut)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RATE-CORRECTION-OUT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Magnitude of the maximum permissible rate correction value. Unit:Microticks (pRateCorrectionOut)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SAMPLES-PER-MICROTICK" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of samples per microtick</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SECOND-KEY-SLOT-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>ID of the second Key slot, in which a second startup frame shall be sent in TT-L Time Triggered Local Master Sync or TT-E Time Triggered External Sync mode. If this parameter is set to zero the node does not have a second key slot.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TWO-KEY-SLOT-MODE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag indicating whether node operates as a startup node in a TT-E Time Triggered External Sync or TT-L Time Triggered Local Master Sync cluster.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-PATTERN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of repetitions of the Tx-wakeup symbol to be sent during the CC_WakeupSend state of this Node in the cluster</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlexrayTopology::FlexrayCommunicationController -->
  <xsd:complexType name="FLEXRAY-COMMUNICATION-CONTROLLER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay bus specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FLEXRAY-COMMUNICATION-CONTROLLER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class FlexrayCommunication::FlexrayFrameTriggering -->
  <xsd:group name="FLEXRAY-FRAME-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ABSOLUTELY-SCHEDULED-TIMINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING" type="AR:FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MESSAGE-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The first two bytes of the payload segment of the FlexRay frame format for frames transmitted in the dynamic segment can be used as receiver filterable data called the message ID.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PAYLOAD-PREAMBLE-INDICATOR" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switching the Payload Preamble bit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlexrayCommunication::FlexrayFrameTriggering -->
  <xsd:complexType name="FLEXRAY-FRAME-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME-TRIGGERING"/>
      <xsd:group ref="AR:FLEXRAY-FRAME-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::FlexrayNmCluster -->
  <xsd:group name="FLEXRAY-NM-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific NM cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-DATA-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of FlexRay Communication Cycles needed to transmit the Nm Data PDUs of all FlexRay Nm Ecus of this FlexRayNmCluster.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-DATA-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switch to enable the separated sending of NM-Data. 
True: enables
False: disables</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-READY-SLEEP-COUNT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Numbers of repetitions in the ready sleep state before NM switches to bus sleep mode. On a value of "1", the NM-State Machine will leave the Ready Sleep State after one NM Repetition Cycle with no "keep awake" votes.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-REPETITION-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of FlexRay Communication Cycles used to repeat the transmission of the Nm vote PDUs of all FlexRay NmEcus  of this FlexRayNmCluster.  This value must be an integral multiple of nmVotingCycle.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-VOTING-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of FlexRay CommunicationCycles needed to transmit the Nm vote of Pdus of all FlexRay NmEcus of this FlexRayNmCluster.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::FlexrayNmCluster -->
  <xsd:complexType name="FLEXRAY-NM-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific NM cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-CLUSTER"/>
      <xsd:group ref="AR:FLEXRAY-NM-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FLEXRAY-NM-CLUSTER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLEXRAY-NM-CLUSTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class NetworkManagement::FlexrayNmClusterCoupling -->
  <xsd:group name="FLEXRAY-NM-CLUSTER-COUPLING">
    <xsd:annotation>
      <xsd:documentation>FlexRay attributes that are valid for each of the referenced (coupled) FlexRay clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COUPLED-CLUSTER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COUPLED-CLUSTER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:FLEXRAY-NM-CLUSTER--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-CONTROL-BIT-VECTOR-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables control bit vector support.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-DATA-DISABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Disables the transmission of NM-Data.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-REPEAT-MESSAGE-BIT-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the processing and the transmission of the repeat message bit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-SCHEDULE-VARIANT" type="AR:FLEXRAY-NM-SCHEDULE-VARIANT" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>FrNm schedule variant according to FrNm SWS.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::FlexrayNmClusterCoupling -->
  <xsd:complexType name="FLEXRAY-NM-CLUSTER-COUPLING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay attributes that are valid for each of the referenced (coupled) FlexRay clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FLEXRAY-NM-CLUSTER-COUPLING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::FlexrayNmEcu -->
  <xsd:group name="FLEXRAY-NM-ECU">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-HW-VOTE-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switch for enabling the processing of FlexRay Hardware aggregated NM-Votes.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-MAIN-FUNCTION-ACROSS-FR-CYCLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Parameter describing if the execution of the FrNm_Main function crosses theFlexRay cycle boundary or not.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::FlexrayNmEcu -->
  <xsd:complexType name="FLEXRAY-NM-ECU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FLEXRAY-NM-ECU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::FlexrayNmNode -->
  <xsd:group name="FLEXRAY-NM-NODE">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific NM Node attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class NetworkManagement::FlexrayNmNode -->
  <xsd:complexType name="FLEXRAY-NM-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific NM Node attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class FlexrayTopology::FlexrayPhysicalChannel -->
  <xsd:group name="FLEXRAY-PHYSICAL-CHANNEL">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the physicalChannel</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHANNEL-NAME" type="AR:FLEXRAY-CHANNEL-NAME" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Name of the channel (Channel A or Channel B).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class FlexrayTopology::FlexrayPhysicalChannel -->
  <xsd:complexType name="FLEXRAY-PHYSICAL-CHANNEL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>FlexRay specific attributes to the physicalChannel</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PHYSICAL-CHANNEL"/>
      <xsd:group ref="AR:FLEXRAY-PHYSICAL-CHANNEL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::FlexrayTpConfig -->
  <xsd:group name="FLEXRAY-TP-CONFIG">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one FlexRay TP Configuration. 

One FlexRayTpConfig element shall be created for each FlexRay Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TP-ADDRESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-ADDRESS" type="AR:TP-ADDRESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-CONNECTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FLEXRAY-TP-CONNECTION" type="AR:FLEXRAY-TP-CONNECTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-CONNECTION-CONTROLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FLEXRAY-TP-CONNECTION-CONTROL" type="AR:FLEXRAY-TP-CONNECTION-CONTROL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-NODES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FLEXRAY-TP-NODE" type="AR:FLEXRAY-TP-NODE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::FlexrayTpConfig -->
  <xsd:complexType name="FLEXRAY-TP-CONFIG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one FlexRay TP Configuration. 

One FlexRayTpConfig element shall be created for each FlexRay Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FLEXRAY-TP-CONFIG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::FlexrayTpConnection -->
  <xsd:group name="FLEXRAY-TP-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>A connection identifies the sender and the receiver of this particular communication. The FlexRayTp module routes a Pdu through this connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DIRECT-TP-SDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MULTICAST-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PDU-POOL-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PDU-POOL-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:N-PDU--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RECEIVER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RECEIVER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:FLEXRAY-TP-NODE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REVERSED-TP-SDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-CONNECTION-CONTROL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FLEXRAY-TP-CONNECTION-CONTROL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRANSMITTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FLEXRAY-TP-NODE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::FlexrayTpConnection -->
  <xsd:complexType name="FLEXRAY-TP-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A connection identifies the sender and the receiver of this particular communication. The FlexRayTp module routes a Pdu through this connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FLEXRAY-TP-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::FlexrayTpConnectionControl -->
  <xsd:group name="FLEXRAY-TP-CONNECTION-CONTROL">
    <xsd:annotation>
      <xsd:documentation>Configuration parameters to control a FlexRay TP connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACK-TYPE" type="AR:TP-ACK-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the type of acknowledgement which is used for the specific channel.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-AR" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the maximum number of trying to send a frame when a TIMEOUT AR occurs (depending on whether retry is configured).</xsd:documentation>
          <xsd:appinfo source="tags">map.type="local"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-AS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the maximum number of trying to send a frame when a TIMEOUT AS occurs (depending on whether retry is configured)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-BUFFER-REQUEST" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the maximum number of trying to get a buffer (Transmit / Receive)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-BUFFER-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter is only relevant when having retry activated. It limits the maximal buffer size the FrTp can choose in order to limit the amount of Tx buffer that will be requested at the sender side in a segmented transfer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-FR-IF" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the maximum number of trying to send a frame when the FrIf returns an error</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-RETRIES" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the maximum number of retries (if retry is configured for the particular channel).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-PER-CYCLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>FrTp PDU Per Cycle: This parameter defines the maximum number of N-Pdus per communication cycle the receiver is able to process.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SEPARATION-CYCLES" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the minimum number of communication cycles between the transmission of two N-Pdus of the same connection.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-BUFFER" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the time of waiting for the next try to get a Tx or Rx buffer.

This parameter is equivalent to the temporal distance between two FC.WT N-Pdus in case the buffer request returns busy.

Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-FR-IF" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the time of waiting for the next try to send. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-AR" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter states the timeout between the PDU transmit request of the Transport Layer to the FlexRay Interface and the corresponding confirmation of the FlexRay Interface on the receiver side (for FC or AF). Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-AS" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute states the timeout between the PDU transmit request for the first PDU of the group used in the current connection of the Transport Layer to the FlexRay Interface and the corresponding confirmation of the FlexRay Interface (when having sent the last PDU of the group used in this connection) on the sender side (SF-x, FF-x, CF or FC (in case of Transmit Cancellation)). Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-BS" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the timeout in seconds for waiting for an FC or AF on the sender side in a 1:1 connection.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIMEOUT-CR" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the timeout value in seconds for waiting for a CF or FF-x (in case of retry) after receiving the last CF or after sending an FC or AF on the receiver side. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::FlexrayTpConnectionControl -->
  <xsd:complexType name="FLEXRAY-TP-CONNECTION-CONTROL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameters to control a FlexRay TP connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FLEXRAY-TP-CONNECTION-CONTROL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FLEXRAY-TP-CONNECTION-CONTROL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLEXRAY-TP-CONNECTION-CONTROL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class TransportProtocols::FlexrayTpNode -->
  <xsd:group name="FLEXRAY-TP-NODE">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTOR-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONNECTOR-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONNECTOR--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-ADDRESS-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::FlexrayTpNode -->
  <xsd:complexType name="FLEXRAY-TP-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FLEXRAY-TP-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FLEXRAY-TP-NODE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLEXRAY-TP-NODE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCParameterDefTemplate::FloatParamDef -->
  <xsd:group name="FLOAT-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Float.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Default value of the float configuration parameter.

atpVariation: [ECUC00083]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>max value allowed for the parameter defined.

atpVariation: [ECUC00084]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>min value allowed for the parameter defined.

atpVariation: [ECUC00084]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::FloatParamDef -->
  <xsd:complexType name="FLOAT-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Float.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:FLOAT-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::FlowControlNPdu -->
  <xsd:group name="FLOW-CONTROL-N-PDU">
    <xsd:annotation>
      <xsd:documentation>The Flow Control network protocol data unit (FC N_PDU) is identified by the Flow Control protocol control information (FC N_PCI). The Flow Control network protocol data unit (FC N_PDU) instructs a sending network entity to start, stop or resume transmission of CF N_PDUs. The Flow Control network protocol data unit shall be sent by the receiving network layer entity to the sending network layer entity, when ready to receive more data, after correct reception of:</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class TransportProtocols::FlowControlNPdu -->
  <xsd:complexType name="FLOW-CONTROL-N-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Flow Control network protocol data unit (FC N_PDU) is identified by the Flow Control protocol control information (FC N_PCI). The Flow Control network protocol data unit (FC N_PDU) instructs a sending network entity to start, stop or resume transmission of CF N_PDUs. The Flow Control network protocol data unit shall be sent by the receiving network layer entity to the sending network layer entity, when ready to receive more data, after correct reception of:</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FLOW-CONTROL-N-PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class InlineTextElements::FootnoteText -->
  <xsd:group name="FOOTNOTE-TEXT">
    <xsd:annotation>
      <xsd:documentation>Use &lt;ft&gt; , to create a footnote.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__FT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>this is subscript text</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>this is superscript text</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="TT" type="AR:TT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="E" type="AR:EMPHASIS-TEXT" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class InlineTextElements::FootnoteText -->
  <xsd:complexType name="FOOTNOTE-TEXT" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>Use &lt;ft&gt; , to create a footnote.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__FT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:FOOTNOTE-TEXT"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SignalPaths::ForbiddenSignalPath -->
  <xsd:group name="FORBIDDEN-SIGNAL-PATH">
    <xsd:annotation>
      <xsd:documentation>The ForbiddenSignalPath describes the physical channels which an element must not take in the topology. Such a signal path can be a constraint for the communication matrix,  because such a path has an effect on the frame generation and the frame path.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-OPERATION-ARGUMENTS" type="AR:SWC-TO-SWC-OPERATION-ARGUMENTS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHYSICAL-CHANNEL-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PHYSICAL-CHANNEL-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:PHYSICAL-CHANNEL--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNALS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-SIGNAL" type="AR:SWC-TO-SWC-SIGNAL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SignalPaths::ForbiddenSignalPath -->
  <xsd:complexType name="FORBIDDEN-SIGNAL-PATH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ForbiddenSignalPath describes the physical channels which an element must not take in the topology. Such a signal path can be a constraint for the communication matrix,  because such a path has an effect on the frame generation and the frame path.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SIGNAL-PATH-CONSTRAINT"/>
      <xsd:group ref="AR:FORBIDDEN-SIGNAL-PATH"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::ForeignReferenceParamDef -->
  <xsd:group name="FOREIGN-REFERENCE-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Specify a reference to an XML description of an entity desribed in another AUTOSAR template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESTINATION-TYPE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The type in the AUTOSAR Metamodel to which' instance this reference is allowed to point to.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ForeignReferenceParamDef -->
  <xsd:complexType name="FOREIGN-REFERENCE-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specify a reference to an XML description of an entity desribed in another AUTOSAR template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:FOREIGN-REFERENCE-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class FormulaLanguage::FormulaExpression -->
  <xsd:group name="FORMULA-EXPRESSION">
    <xsd:annotation>
      <xsd:documentation>This class represents the syntax of the formula language. The class is modeled as an abstract class in order to be specialized into particular usecases. For each usecase the referrable objects might be specified in the specialization.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class Constants::FormulaValueSpecification -->
  <xsd:group name="FORMULA-VALUE-SPECIFICATION">
    <xsd:annotation>
      <xsd:documentation>A ValueSpecification resulting from the evaluation of a formula.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VF" type="AR:VF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::FormulaValueSpecification -->
  <xsd:complexType name="FORMULA-VALUE-SPECIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A ValueSpecification resulting from the evaluation of a formula.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FORMULA-VALUE-SPECIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::Frame -->
  <xsd:group name="FRAME">
    <xsd:annotation>
      <xsd:documentation>Data frame which is sent over a communication medium. This element describes the pure Layout of a frame sent on a channel.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The used length (in bytes)  of the referencing frame. Should not be confused with a static byte length reserved for each frame by some platforms (e.g. FlexRay).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-TO-FRAME-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PDU-TO-FRAME-MAPPING" type="AR:PDU-TO-FRAME-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::Frame -->
  <xsd:complexType name="FRAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Data frame which is sent over a communication medium. This element describes the pure Layout of a frame sent on a channel.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FRAME--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FRAME"/>
      <xsd:enumeration value="LIN-EVENT-TRIGGERED-FRAME"/>
      <xsd:enumeration value="LIN-SPORADIC-FRAME"/>
      <xsd:enumeration value="LIN-UNCONDITIONAL-FRAME"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Fibex4Multiplatform::FrameMapping -->
  <xsd:group name="FRAME-MAPPING">
    <xsd:annotation>
      <xsd:documentation>The entire source frame is mapped as it is onto the target frame (what in general is only possible inside of a common platform). In this case source and target frame should be the identical object.

Each pair consists in a SOURCE and a TARGET referencing to a FrameTriggering.

The Frame Mapping is not supported by the Autosar BSW. The existence is optional and has been incorporated into the System Template mainly for compatibility in order to allow interchange between FIBEX and AUTOSAR descriptions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:element name="SOURCE-FRAME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FRAME-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-FRAME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FRAME-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::FrameMapping -->
  <xsd:complexType name="FRAME-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The entire source frame is mapped as it is onto the target frame (what in general is only possible inside of a common platform). In this case source and target frame should be the identical object.

Each pair consists in a SOURCE and a TARGET referencing to a FrameTriggering.

The Frame Mapping is not supported by the Autosar BSW. The existence is optional and has been incorporated into the System Template mainly for compatibility in order to allow interchange between FIBEX and AUTOSAR descriptions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FRAME-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::FramePort -->
  <xsd:group name="FRAME-PORT">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port on the referenced channel referenced by a FrameTriggering.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class CoreCommunication::FramePort -->
  <xsd:complexType name="FRAME-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port on the referenced channel referenced by a FrameTriggering.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMM-CONNECTOR-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FRAME-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FRAME-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::FrameTriggering -->
  <xsd:group name="FRAME-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>The FrameTriggering describes the instance of a frame sent on a channel and defines the manner of triggering (timing information) and identification of a frame on the channel, on which it is sent.

For the same frame, if Frame Triggerings exist on more than one channel of the same cluster the fan-out/in is handled by the Bus interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FRAME-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:FRAME-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FRAME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FRAME--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="FRAME-TRIGGERING--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-FRAME-TRIGGERING"/>
      <xsd:enumeration value="ETHERNET-FRAME-TRIGGERING"/>
      <xsd:enumeration value="FLEXRAY-FRAME-TRIGGERING"/>
      <xsd:enumeration value="LIN-FRAME-TRIGGERING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinCommunication::FreeFormat -->
  <xsd:group name="FREE-FORMAT">
    <xsd:annotation>
      <xsd:documentation>Representing freely defined data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BYTE-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="8">
            <xsd:element name="BYTE-VALUE" type="xsd:integer" minOccurs="0" maxOccurs="8">
              <xsd:annotation>
                <xsd:documentation>The integer Value of a freely defined data byte.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::FreeFormat -->
  <xsd:complexType name="FREE-FORMAT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Representing freely defined data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:FREE-FORMAT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::FreeFormatEntry -->
  <xsd:group name="FREE-FORMAT-ENTRY">
    <xsd:annotation>
      <xsd:documentation>FreeFormat transmits a fixed master request frame with the eight data bytes provided. This may for instance be used to issue user specific fixed frames.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class BasicElements::FrequencyRange -->
  <xsd:group name="FREQUENCY-RANGE">
    <xsd:annotation>
      <xsd:documentation>Class describing minimum, maximum and typical frequencies.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAX-FREQUENCY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum frequency.
Unit: Herz</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-FREQUENCY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum frequency.
Unit: Herz</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPICAL-FREQUENCY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Typical frequency.
Unit: Herz</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BasicElements::FrequencyRange -->
  <xsd:complexType name="FREQUENCY-RANGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Class describing minimum, maximum and typical frequencies.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:FREQUENCY-RANGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::FunctionInhibitionNeeds -->
  <xsd:group name="FUNCTION-INHIBITION-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Function Inhibition Manager for one Function Identifier (FID). This class currently contains no attributes. Its name can be regarded as a symbol identifying the FID  from the viewpoint of the component or module which owns this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::FunctionInhibitionNeeds -->
  <xsd:complexType name="FUNCTION-INHIBITION-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Function Inhibition Manager for one Function Identifier (FID). This class currently contains no attributes. Its name can be regarded as a symbol identifying the FID  from the viewpoint of the component or module which owns this class.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="FUNCTION-INHIBITION-NEEDS--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FUNCTION-INHIBITION-NEEDS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCParameterDefTemplate::FunctionNameDef -->
  <xsd:group name="FUNCTION-NAME-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Function Names like those used to specify callback functions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::FunctionNameDef -->
  <xsd:complexType name="FUNCTION-NAME-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Function Names like those used to specify callback functions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:STRING-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Fibex4Multiplatform::Gateway -->
  <xsd:group name="GATEWAY">
    <xsd:annotation>
      <xsd:documentation>A gateway is an ECU that is connected to two or more clusters (channels, but not redundant), and performs a frame, Pdu or signal mapping between them.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FRAME-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FRAME-MAPPING" type="AR:FRAME-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="I-PDU-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-PDU-MAPPING" type="AR:I-PDU-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNAL-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SIGNAL-MAPPING" type="AR:SIGNAL-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::Gateway -->
  <xsd:complexType name="GATEWAY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A gateway is an ECU that is connected to two or more clusters (channels, but not redundant), and performs a frame, Pdu or signal mapping between them.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:GATEWAY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Annotation::GeneralAnnotation -->
  <xsd:group name="GENERAL-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>This class represents textual comments (called annotations) which relate to the object in which it is aggregated. These are intended for use during the development process, to transfer information from one stage of the development process to the next one. 

The approach is similar to the "yellow pads ..."

This abstract class can be specialized in order to add some further formal properties.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LABEL" type="AR:MULTILANGUAGE-LONG-NAME" minOccurs="0"/>
      <xsd:element name="ANNOTATION-ORIGIN" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element identifies the origin of the annotation. It is an arbitrary string since it can be an individual's name as well as the name of a tool or even the name of a process step.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="ANNOTATION_TYPE__ANNOTATION-ORIGIN";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ANNOTATION-TEXT" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class GerneralParameters::GeneralParameter -->
  <xsd:group name="GENERAL-PARAMETER">
    <xsd:annotation>
      <xsd:documentation>This represents a parameter in general e.g. an entry in a data sheet.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PRM-CHAR" type="AR:PRM-CHAR" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GerneralParameters::GeneralParameter -->
  <xsd:complexType name="GENERAL-PARAMETER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This represents a parameter in general e.g. an entry in a data sheet.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:GENERAL-PARAMETER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::GeneralPurposeTimer -->
  <xsd:group name="GENERAL-PURPOSE-TIMER">
    <xsd:annotation>
      <xsd:documentation>Common attributes shared by all timer peripherals</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CLOCK-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OSCILLATOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHASE-DETECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Some timers have the possibility to detect signals from a quadrature rotating switch. There are two outputs signal from such a switch; the signals are 90 degrees phase shifted from each other. The rotation of the switch can then automatically be detected by a special function in a timer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESOLUTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>For a timer the resolution defines the data width of the counter.
Unit: Bits</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="THRESHOLD-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="THRESHOLD-VALUE" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>The threshold is the definition of a counter value. When the counter has reached this value some action is performed, e.g. an interrupt can be generated.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Figure::Graphic -->
  <xsd:group name="GRAPHIC">
    <xsd:annotation>
      <xsd:documentation>This class represents an artifact containing the image to be inserted in the document</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__GRAPHIC_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class Figure::Graphic -->
  <xsd:attributeGroup name="GRAPHIC">
    <xsd:annotation>
      <xsd:documentation>This class represents an artifact containing the image to be inserted in the document</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__GRAPHIC_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="EDIT-HEIGHT" type="xsd:string"/>
    <xsd:attribute name="EDIT-WIDTH" type="xsd:string"/>
    <xsd:attribute name="EDITFIT" type="AR:GRAPHIC-FIT-ENUM">
      <xsd:annotation>
        <xsd:documentation>Spedifies how the graphic shall be displayed in an editor. If the attribute is missing,</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="GRAPHIC_TYPE__GRAPHIC_TYPE__EDITFIT";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="EDITSCALE" type="xsd:string"/>
    <xsd:attribute name="FILENAME" type="xsd:string"/>
    <xsd:attribute name="FIT" type="AR:GRAPHIC-FIT-ENUM">
      <xsd:annotation>
        <xsd:documentation>How to fit the graphic in page based output. Default is "AS-IS"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="AS-IS";msr.id="GRAPHIC_TYPE__GRAPHIC_TYPE__FIT";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="HEIGHT" type="xsd:string"/>
    <xsd:attribute name="HTML-FIT" type="AR:GRAPHIC-FIT-ENUM">
      <xsd:annotation>
        <xsd:documentation>How to fit the graphic in an online media. Default is AS-IS.</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="AS-IS";msr.id="GRAPHIC_TYPE__GRAPHIC_TYPE__HTML-FIT";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="HTML-HEIGHT" type="xsd:string"/>
    <xsd:attribute name="HTML-SCALE" type="xsd:string"/>
    <xsd:attribute name="HTML-WIDTH" type="xsd:string"/>
    <xsd:attribute name="SCALE" type="xsd:string"/>
    <xsd:attribute name="WIDTH" type="xsd:string"/>
  </xsd:attributeGroup>
  <!-- complex type for class Figure::Graphic -->
  <xsd:complexType name="GRAPHIC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents an artifact containing the image to be inserted in the document</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__GRAPHIC_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ENGINEERING-OBJECT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:GRAPHIC"/>
  </xsd:complexType>
  <!-- element group for class ECUResourceTemplate::HWConnection -->
  <xsd:group name="HW-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>Abstract class to specify the ability to connect HWPorts.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTED-PINS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PIN-HW-CONNECTION" type="AR:PIN-HW-CONNECTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUResourceTemplate::HWContainer -->
  <xsd:group name="HW-CONTAINER">
    <xsd:annotation>
      <xsd:documentation>A HW Container is a group of HW Elements on the same hierarchical level and is an abstraction of composite HW Elements. The HW Container is a specialisation of a HW Element and therefore the HW Container has all elements of a HW Element.
The values of elements of the HW Elements grouped in a HW Container may differ from the values of the elements of the HW Container.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::HWContainer -->
  <xsd:complexType name="HW-CONTAINER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A HW Container is a group of HW Elements on the same hierarchical level and is an abstraction of composite HW Elements. The HW Container is a specialisation of a HW Element and therefore the HW Container has all elements of a HW Element.
The values of elements of the HW Elements grouped in a HW Container may differ from the values of the elements of the HW Container.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:HW-ELEMENT-CONTAINER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUResourceTemplate::HWElement -->
  <xsd:group name="HW-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>The General HW Element specifies definitions valid for all specific HW Elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="HW-ELEMENT-TEMPERATURE" type="AR:TEMPERATURE" minOccurs="0"/>
      <xsd:element name="PORTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMMUNICATION-HW-PORT" type="AR:COMMUNICATION-HW-PORT"/>
            <xsd:element name="ECU-COMMUNICATION-PORT" type="AR:ECU-COMMUNICATION-PORT"/>
            <xsd:element name="HW-PORT" type="AR:HW-PORT"/>
            <xsd:element name="INTERRUPT-CONSUME-HW-PORT" type="AR:INTERRUPT-CONSUME-HW-PORT"/>
            <xsd:element name="INTERRUPT-PRODUCE-HW-PORT" type="AR:INTERRUPT-PRODUCE-HW-PORT"/>
            <xsd:element name="MEMORY-MAPPED-HW-PORT" type="AR:MEMORY-MAPPED-HW-PORT"/>
            <xsd:element name="PERIPHERAL-HW-PORT" type="AR:PERIPHERAL-HW-PORT"/>
            <xsd:element name="POWER-DRIVER-HW-PORT" type="AR:POWER-DRIVER-HW-PORT"/>
            <xsd:element name="POWER-SUPPLY-HW-PORT" type="AR:POWER-SUPPLY-HW-PORT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNAL-TRANSFORMATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SIGNAL-TRANSFORMATION" type="AR:SIGNAL-TRANSFORMATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="STANDBY-CURRENT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The Standby Current is the current in state OFF. For HW Elements the Standby Current consists of the current needed by the logic to stay in the state OFF and the leakage current of the HW Element. For big HW Elements the leakage current can be up to several 100 microA.
Standby Current is used to determine which elements are necessary to be switch off, when the car itself is in a standby mode. This can be done automatically or by the user.
The value for the Standby Current can be entered for each HW Element and HW Container respectively. The user has to take care about these values and decides about the entries necessary for the calculation of the complete standby current. On the other side the sum for all HW Elements grouped in a HW Container may have a bigger value than the value for the HW Container itself. In this case the values for the HW Elements represent the worst case for each HW Element. 
Unit: Ampere (A)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SUPPORTS-SAFETY" type="AR:SUPPORTS-SAFETY" minOccurs="0"/>
      <xsd:element name="SUPPORTS-SECURITY" type="AR:SUPPORTS-SECURITY" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="HW-ELEMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ADC"/>
      <xsd:enumeration value="ACTUATOR-HW"/>
      <xsd:enumeration value="CCU"/>
      <xsd:enumeration value="CLOCK"/>
      <xsd:enumeration value="COMMUNICATION-PERIPHERAL"/>
      <xsd:enumeration value="COMMUNICATION-TRANSCEIVER"/>
      <xsd:enumeration value="DAC"/>
      <xsd:enumeration value="DIGITAL-IO"/>
      <xsd:enumeration value="DISCRETE-ECU-ELECTRONICS"/>
      <xsd:enumeration value="DISPLAY-HW"/>
      <xsd:enumeration value="ECU"/>
      <xsd:enumeration value="HW-CONTAINER"/>
      <xsd:enumeration value="OSCILLATOR"/>
      <xsd:enumeration value="PWD"/>
      <xsd:enumeration value="PWM"/>
      <xsd:enumeration value="PERIPHERAL"/>
      <xsd:enumeration value="POWER-DRIVER-HW-ELEMENT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-ELEMENT"/>
      <xsd:enumeration value="PROCESSING-UNIT"/>
      <xsd:enumeration value="PROVIDED-MEMORY-SEGMENT"/>
      <xsd:enumeration value="PROVIDED-NV-MEMORY-SEGMENT"/>
      <xsd:enumeration value="SENSOR-HW"/>
      <xsd:enumeration value="TIMER"/>
      <xsd:enumeration value="WATCH-DOG"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUResourceTemplate::HWElementContainer -->
  <xsd:group name="HW-ELEMENT-CONTAINER">
    <xsd:annotation>
      <xsd:documentation>Abstract class to enable the collection of HW Elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ASSEMBLY-HW-CONNECTION" type="AR:ASSEMBLY-HW-CONNECTION"/>
            <xsd:element name="DELEGATION-HW-CONNECTION" type="AR:DELEGATION-HW-CONNECTION"/>
            <xsd:element name="MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION" type="AR:MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION"/>
            <xsd:element name="MEMORY-MAPPED-DELEGATION-HW-CONNECTION" type="AR:MEMORY-MAPPED-DELEGATION-HW-CONNECTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTAINED-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ADC" type="AR:ADC"/>
            <xsd:element name="ACTUATOR-HW" type="AR:ACTUATOR-HW"/>
            <xsd:element name="CCU" type="AR:CCU"/>
            <xsd:element name="CLOCK" type="AR:CLOCK"/>
            <xsd:element name="COMMUNICATION-PERIPHERAL" type="AR:COMMUNICATION-PERIPHERAL"/>
            <xsd:element name="COMMUNICATION-TRANSCEIVER" type="AR:COMMUNICATION-TRANSCEIVER"/>
            <xsd:element name="DAC" type="AR:DAC"/>
            <xsd:element name="DIGITAL-IO" type="AR:DIGITAL-IO"/>
            <xsd:element name="DISCRETE-ECU-ELECTRONICS" type="AR:DISCRETE-ECU-ELECTRONICS"/>
            <xsd:element name="DISPLAY-HW" type="AR:DISPLAY-HW"/>
            <xsd:element name="ECU" type="AR:ECU"/>
            <xsd:element name="HW-CONTAINER" type="AR:HW-CONTAINER"/>
            <xsd:element name="OSCILLATOR" type="AR:OSCILLATOR"/>
            <xsd:element name="PWD" type="AR:PWD"/>
            <xsd:element name="PWM" type="AR:PWM"/>
            <xsd:element name="PERIPHERAL" type="AR:PERIPHERAL"/>
            <xsd:element name="POWER-DRIVER-HW-ELEMENT" type="AR:POWER-DRIVER-HW-ELEMENT"/>
            <xsd:element name="POWER-SUPPLY-HW-ELEMENT" type="AR:POWER-SUPPLY-HW-ELEMENT"/>
            <xsd:element name="PROCESSING-UNIT" type="AR:PROCESSING-UNIT"/>
            <xsd:element name="PROVIDED-MEMORY-SEGMENT" type="AR:PROVIDED-MEMORY-SEGMENT"/>
            <xsd:element name="PROVIDED-NV-MEMORY-SEGMENT" type="AR:PROVIDED-NV-MEMORY-SEGMENT"/>
            <xsd:element name="SENSOR-HW" type="AR:SENSOR-HW"/>
            <xsd:element name="TIMER" type="AR:TIMER"/>
            <xsd:element name="WATCH-DOG" type="AR:WATCH-DOG"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUResourceTemplate::HWPin -->
  <xsd:group name="HW-PIN">
    <xsd:annotation>
      <xsd:documentation>A HWPin is an elementary electrical interface of the HWElement.
The HWPins of a HWPort can be clustered if there are some HWPins with the same behaviour.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::HWPin -->
  <xsd:complexType name="HW-PIN" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A HWPin is an elementary electrical interface of the HWElement.
The HWPins of a HWPort can be clustered if there are some HWPins with the same behaviour.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="HW-PIN--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="HW-PIN"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUResourceTemplate::HWPort -->
  <xsd:group name="HW-PORT">
    <xsd:annotation>
      <xsd:documentation>The general element HW Port is necessary to connect HW Elements and contains common elements for all different kind of HW Ports.
HW Ports are required to be uniquely identifiable within the scope of a HW Element. This means to identify a specific HW Port it is necessary to prefix the HW Port name by the name of the HW Element (e.g."PU1/ADCPort3").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DIRECTION" type="AR:COMMUNICATION-DIRECTION-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The direction of a HW Port defines signal flow in the point of view of the HW Element the HW Port belongs to. The following attributes are allowed:</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PINS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="HW-PIN" type="AR:HW-PIN"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::HWPort -->
  <xsd:complexType name="HW-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The general element HW Port is necessary to connect HW Elements and contains common elements for all different kind of HW Ports.
HW Ports are required to be uniquely identifiable within the scope of a HW Element. This means to identify a specific HW Port it is necessary to prefix the HW Port name by the name of the HW Element (e.g."PU1/ADCPort3").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="HW-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMMUNICATION-HW-PORT"/>
      <xsd:enumeration value="ECU-COMMUNICATION-PORT"/>
      <xsd:enumeration value="HW-PORT"/>
      <xsd:enumeration value="INTERRUPT-CONSUME-HW-PORT"/>
      <xsd:enumeration value="INTERRUPT-PRODUCE-HW-PORT"/>
      <xsd:enumeration value="MEMORY-MAPPED-HW-PORT"/>
      <xsd:enumeration value="PERIPHERAL-HW-PORT"/>
      <xsd:enumeration value="POWER-DRIVER-HW-PORT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUResourceMapping::HWPortMapping -->
  <xsd:group name="HW-PORT-MAPPING">
    <xsd:annotation>
      <xsd:documentation>HWPortMapping specifies the ECUCommunicationPort hardware (defined in the ECU Resource Template) to realize the specified CommunicationConnector in a physical topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-CONNECTOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONNECTOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-COMMUNICATION-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-COMMUNICATION-PORT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceMapping::HWPortMapping -->
  <xsd:complexType name="HW-PORT-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>HWPortMapping specifies the ECUCommunicationPort hardware (defined in the ECU Resource Template) to realize the specified CommunicationConnector in a physical topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:HW-PORT-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ResourceConsumption::HardwareConfiguration -->
  <xsd:group name="HARDWARE-CONFIGURATION">
    <xsd:annotation>
      <xsd:documentation>Describes in which mode the hardware is operating while providing the ExecutionTime.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ADDITIONAL-INFORMATION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies additional information on the HardwareConfiguration.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROCESSOR-MODE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies in which mode the processor is operating.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROCESSOR-SPEED" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the speed the processor is operating.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ResourceConsumption::HardwareConfiguration -->
  <xsd:complexType name="HARDWARE-CONFIGURATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes in which mode the hardware is operating while providing the ExecutionTime.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:HARDWARE-CONFIGURATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class HeapUsage::HeapUsage -->
  <xsd:group name="HEAP-USAGE">
    <xsd:annotation>
      <xsd:documentation>Describes the heap memory usage of a SW-Component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="HARDWARE-CONFIGURATION" type="AR:HARDWARE-CONFIGURATION" minOccurs="0"/>
      <xsd:element name="SOFTWARE-CONTEXT" type="AR:SOFTWARE-CONTEXT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class CoreCommunication::IPdu -->
  <xsd:group name="I-PDU">
    <xsd:annotation>
      <xsd:documentation>The IPdu (Interaction Layer Protocol Data Unit) element is used to sum up the IPdus of AUTOSAR COM, DCM and IPduM. This Pdus are sent to the PduR.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The size of the IPDU in bits. 
In DcmIPdus this attribute describes the maximum length.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UNUSED-BIT-PATTERN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>AUTOSAR COM fills not used areas of an IPDU with this bit-pattern. This attribute is mandatory to avoid undefined behavior. This byte-pattern will be repeated throughout the IPDU.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="I-PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DCM-I-PDU"/>
      <xsd:enumeration value="MULTIPLEXED-I-PDU"/>
      <xsd:enumeration value="SIGNAL-I-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::IPduGroup -->
  <xsd:group name="I-PDU-GROUP">
    <xsd:annotation>
      <xsd:documentation>The AUTOSAR COM Layer is able to start and to stop sending and receiving  configurable groups of I-Pdus during runtime. An I-Pdu group contains either Com I-Pdus or I-Pdu groups.

When an I-Pdu group containing one or more other I-Pdu groups is started the contained I-Pdu groups shall also be started. When an I-Pdu group containing one or more other I-Pdu groups is stopped the contained I-Pdu groups shall also be stopped.

Only a two level hierarchy of I-Pdu groups is allowed. An I-Pdu group that is part of an I-Pdu group must not contain I-Pdu groups.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-DIRECTION" type="AR:COMMUNICATION-DIRECTION-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute determines in which direction IPdus that are contained in this IPduGroup will be transmitted (communication direction can be either Send or Receive).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="COMMUNICATION-MODE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute defines the use-case for this IPduGroup (e.g. diagnostic, debugging etc.). For example, in a diagnostic mode all IPdus - which are not involved in diagnostic - are disabled. The use cases are not limited to a fixed enumeration and can be specified as a string.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CONTAINED-I-PDU-GROUPS-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTAINED-I-PDU-GROUPS-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:I-PDU-GROUP--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="I-PDU-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-PDU-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:SIGNAL-I-PDU--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::IPduGroup -->
  <xsd:complexType name="I-PDU-GROUP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The AUTOSAR COM Layer is able to start and to stop sending and receiving  configurable groups of I-Pdus during runtime. An I-Pdu group contains either Com I-Pdus or I-Pdu groups.

When an I-Pdu group containing one or more other I-Pdu groups is started the contained I-Pdu groups shall also be started. When an I-Pdu group containing one or more other I-Pdu groups is stopped the contained I-Pdu groups shall also be stopped.

Only a two level hierarchy of I-Pdu groups is allowed. An I-Pdu group that is part of an I-Pdu group must not contain I-Pdu groups.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-PDU-GROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="I-PDU-GROUP--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-PDU-GROUP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Fibex4Multiplatform::IPduMapping -->
  <xsd:group name="I-PDU-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Arranges those IPdus that are transferred by the gateway from one channel to the other in pairs and defines the mapping between them.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:element name="SOURCE-I-PDU" type="AR:SOURCE-I-PDU-REF" minOccurs="0"/>
      <xsd:element name="TARGET-I-PDU" type="AR:TARGET-I-PDU-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::IPduMapping -->
  <xsd:complexType name="I-PDU-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Arranges those IPdus that are transferred by the gateway from one channel to the other in pairs and defines the mapping between them.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:I-PDU-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::IPduPort -->
  <xsd:group name="I-PDU-PORT">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port on the referenced channel referenced by an IPduTriggering.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class CoreCommunication::IPduPort -->
  <xsd:complexType name="I-PDU-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port on the referenced channel referenced by an IPduTriggering.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMM-CONNECTOR-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="I-PDU-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-PDU-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::IPduTiming -->
  <xsd:group name="I-PDU-TIMING">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR COM provides the possibility to define two different TRANSMISSION MODES for each I-PDU.

The Transmission Mode of an I-PDU that is valid at a specific point in time is selected using the values of the signals that are mapped to this I-PDU. For each I-PDU a Transmission Mode Selector is defined. The Transmission Mode Selector is calculated by evaluating the conditions for a subset of signals  (class TransmissionModeCondition in the System Template).

The Transmission Mode Selector is defined to be true, if at least one Condition evaluates to true and is defined to be false, if all Conditions evaluate to false.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MINIMUM-DELAY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum Delay in seconds between successive transmissions of this I-PDU, independent of the Transmission Mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TRANSMISSION-MODE-DECLARATION" type="AR:TRANSMISSION-MODE-DECLARATION" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::IPduTiming -->
  <xsd:complexType name="I-PDU-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR COM provides the possibility to define two different TRANSMISSION MODES for each I-PDU.

The Transmission Mode of an I-PDU that is valid at a specific point in time is selected using the values of the signals that are mapped to this I-PDU. For each I-PDU a Transmission Mode Selector is defined. The Transmission Mode Selector is calculated by evaluating the conditions for a subset of signals  (class TransmissionModeCondition in the System Template).

The Transmission Mode Selector is defined to be true, if at least one Condition evaluates to true and is defined to be false, if all Conditions evaluate to false.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:I-PDU-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::IPduTriggering -->
  <xsd:group name="I-PDU-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>The IPduTriggering describes on which channel the IPdu is transmitted.

Depending on its relation to entities such channels and clusters it can be unambiguously deduced whether a fan-out is handled by the Pdu router or the Bus Interface. 

If the fan-out is specified between different clusters it shall be handled by the Pdu Router.
If the fan-out is specified between different channels of the same cluster it shall be handled by the Bus Interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="I-PDU-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-PDU-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:I-PDU-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::IPduTriggering -->
  <xsd:complexType name="I-PDU-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The IPduTriggering describes on which channel the IPdu is transmitted.

Depending on its relation to entities such channels and clusters it can be unambiguously deduced whether a fan-out is handled by the Pdu router or the Bus Interface. 

If the fan-out is specified between different clusters it shall be handled by the Pdu Router.
If the fan-out is specified between different channels of the same cluster it shall be handled by the Bus Interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-PDU-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="I-PDU-TRIGGERING--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-PDU-TRIGGERING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::ISignal -->
  <xsd:group name="I-SIGNAL">
    <xsd:annotation>
      <xsd:documentation>Signal of the Interaction Layer. The RTE supports a "signal fan-out" where the same System Signal is sent in different SignalIPdus to multiple receivers. 

The System Signal is unique per System. To support the RTE "signal fan-out" each SignalIPdu  contains ISignals. If the same System Signal is to be mapped into several SignalIPdus there is one ISignal needed for each ISignalToIPduMapping. 

ISignals describe the Interface between the Precompile configured RTE and the potentially Postbuild configured Com Stack (see ECUC Parameter Mapping). 

In the case of the SystemSignalGroup an ISignal must be created for the SystemSignalGroup and for each SystemSignal contained in the SystemSignalGroup.
If a mapping for the SystemSignalGroup is defined, only the UpdateIndicationBitPosition is relevant, and the startPosition shall be ignored.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ABSTRACT-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::ISignal -->
  <xsd:complexType name="I-SIGNAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Signal of the Interaction Layer. The RTE supports a "signal fan-out" where the same System Signal is sent in different SignalIPdus to multiple receivers. 

The System Signal is unique per System. To support the RTE "signal fan-out" each SignalIPdu  contains ISignals. If the same System Signal is to be mapped into several SignalIPdus there is one ISignal needed for each ISignalToIPduMapping. 

ISignals describe the Interface between the Precompile configured RTE and the potentially Postbuild configured Com Stack (see ECUC Parameter Mapping). 

In the case of the SystemSignalGroup an ISignal must be created for the SystemSignalGroup and for each SystemSignal contained in the SystemSignalGroup.
If a mapping for the SystemSignalGroup is defined, only the UpdateIndicationBitPosition is relevant, and the startPosition shall be ignored.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-SIGNAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="I-SIGNAL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-SIGNAL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::ISignalToIPduMapping -->
  <xsd:group name="I-SIGNAL-TO-I-PDU-MAPPING">
    <xsd:annotation>
      <xsd:documentation>An ISignalToIPduMapping describes the mapping of ISignals to SignalIPdus and defines the position of the ISignal within an SignalIPdu.

This element does NOT describe signal or I-PDU fan-out. 
Every ISignal can only be mapped into one SignalIPdu.
Several ISignalToIPduMappings to the same ISignal are only relevant when the ECU handles the signal gateway. 

If a mapping for the SystemSignalGroup is defined, only the UpdateIndicationBitPosition is relevant, and the startPosition shall be ignored.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PACKING-BYTE-ORDER" type="AR:ENDIANESS-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter defines the order of the bytes of the signal and the packing into the SignalIPdu. The byte ordering "Little Endian" (MostSignificantByteLast), "Big Endian" (MostSignificantByteFirst) and "Opaque" can be selected. For opaque data endianness conversion shall be configured to Opaque.
The value of this attribute impacts the absolute position of the signal into the SignalIPdu (see the startPosition attribute description).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="START-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter is necessary to describe the bitposition of a signal within an SignalIPdu.
It denotes the least significant bit for "Little Endian" and the most significant bit for "Big Endian" packed signals within the IPdu (see the description of the packingByteOrder attribute).

Bits within the IPdu are counted as follows (see the OSEK COM v3.0.3 specification) :
      Bit 0 corresponds to Byte 0 Bit 0
      Bit 1 corresponds to Byte 0 Bit 1
      .....
      Bit 8 corresponds to Byte 1 Bit 0
      etc.

Please note that the way the bytes will be actually sent on the bus does not impact this representation: they will always be seen by the software as a byte array. 
Note also that the absolute position of the signal in the SignalIPdu is then determined by the definition of the packingByteOrder attribute of the signal.

If a mapping for the SystemSignalGroup is defined, only the UpdateIndicationBitPosition is relevant, and the startPosition shall be ignored.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UPDATE-INDICATION-BIT-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The UpdateIndicationBit indicates to the receivers that the signal (or the signal group) was updated by the sender. Length is always one bit. The UpdateIndicationBitPosition attribute describes the position of the update bit within the SignalIPdu.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::ISignalToIPduMapping -->
  <xsd:complexType name="I-SIGNAL-TO-I-PDU-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An ISignalToIPduMapping describes the mapping of ISignals to SignalIPdus and defines the position of the ISignal within an SignalIPdu.

This element does NOT describe signal or I-PDU fan-out. 
Every ISignal can only be mapped into one SignalIPdu.
Several ISignalToIPduMappings to the same ISignal are only relevant when the ECU handles the signal gateway. 

If a mapping for the SystemSignalGroup is defined, only the UpdateIndicationBitPosition is relevant, and the startPosition shall be ignored.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-SIGNAL-TO-I-PDU-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="I-SIGNAL-TO-I-PDU-MAPPING--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-SIGNAL-TO-I-PDU-MAPPING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::ISignalTriggering -->
  <xsd:group name="I-SIGNAL-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>A ISignalTriggering defines the manner of triggering of a ISignal on the channel, on which it is sent.

ISignalTriggering can be used for the definition of timing constraints. The information is also used for the specification of ComSignal TransferProperties (CyclicTiming -&amp;gt; PENDING, EventControlledTiming -&amp;gt; TRIGGERED). 

The triggered transfer property causes immediate transmission of the IPdu, except if transmission mode Periodic or transmission mode None&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;is defined for the IPdu. 
The immediate transmission of the IPdu is caused even if only 
one Signal of an IPdu has the TransferProperty TRIGGERED and all other Signals have the TransferProperty PENDING.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CYCLIC-TIMING" type="AR:CYCLIC-TIMING" minOccurs="0"/>
      <xsd:element name="EVENT-CONTROLLED-TIMING" type="AR:EVENT-CONTROLLED-TIMING" minOccurs="0"/>
      <xsd:element name="I-SIGNAL-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-SIGNAL-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:SIGNAL-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::ISignalTriggering -->
  <xsd:complexType name="I-SIGNAL-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A ISignalTriggering defines the manner of triggering of a ISignal on the channel, on which it is sent.

ISignalTriggering can be used for the definition of timing constraints. The information is also used for the specification of ComSignal TransferProperties (CyclicTiming -&amp;gt; PENDING, EventControlledTiming -&amp;gt; TRIGGERED). 

The triggered transfer property causes immediate transmission of the IPdu, except if transmission mode Periodic or transmission mode None&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;is defined for the IPdu. 
The immediate transmission of the IPdu is caused even if only 
one Signal of an IPdu has the TransferProperty TRIGGERED and all other Signals have the TransferProperty PENDING.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-SIGNAL-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Identifiable::Identifiable -->
  <xsd:group name="IDENTIFIABLE">
    <xsd:annotation>
      <xsd:documentation>Instances of this class can be referred to by their identifier (while adhering to namespace borders). In addition to this, Identifiables are objects  which contribute significantly to the overall structure of an Autosar System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESC" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:element name="CATEGORY" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element assigns a category to the parent element. The category can be used by a semantic checker in post-processes to ensure that the parent object is defined correctly i.e. has the right number of elements for example.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="-50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ADMIN-DATA" type="AR:ADMIN-DATA" minOccurs="0"/>
      <xsd:element name="INTRODUCTION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Identifiable::Identifiable -->
  <xsd:attributeGroup name="IDENTIFIABLE">
    <xsd:annotation>
      <xsd:documentation>Instances of this class can be referred to by their identifier (while adhering to namespace borders). In addition to this, Identifiables are objects  which contribute significantly to the overall structure of an Autosar System.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="UUID" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>The purpose of this attribute is to provide a globally unique identifier for an instance of a metaclass. The values of this attribute should be globally unique strings prefixed by the type of identifier.  For example, to include a
DCE UUID as defined by The Open Group, the UUID would be preceded by "DCE:". The values of this attribute may be used to support merging of different AUTOSAR models. 
The form of the UUID (Universally Unique Identifier) is taken from a standard defined by the Open Group (was Open Software Foundation). This standard is widely used, including by Microsoft for COM (GUIDs) and by many companies for DCE, which is based on CORBA. The method for generating these 128-bit IDs is published in the standard and the effectiveness and uniqueness of the IDs is not in practice disputed.
If the id namespace is omitted, DCE is assumed. 
An example is "DCE:2fac1234-31f8-11b4-a222-08002b34c003".</xsd:documentation>
        <xsd:appinfo source="tags">xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <xsd:simpleType name="IDENTIFIABLE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ADC"/>
      <xsd:enumeration value="AR-PACKAGE"/>
      <xsd:enumeration value="ACTUATOR-HW"/>
      <xsd:enumeration value="ADD-INFO-PARAM-DEF"/>
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-ARRAY-ELEMENT"/>
      <xsd:enumeration value="APPLICATION-ERROR"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-ELEMENT"/>
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="ARGUMENT-DATA-PROTOTYPE"/>
      <xsd:enumeration value="ARRAY-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="ASSEMBLY-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="ASSEMBLY-HW-CONNECTION"/>
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-POINT"/>
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT"/>
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT"/>
      <xsd:enumeration value="BOOLEAN-PARAM-DEF"/>
      <xsd:enumeration value="BSW-DEBUG-DATA-ELEMENT"/>
      <xsd:enumeration value="BSW-DEBUG-INFO"/>
      <xsd:enumeration value="BSW-EXTERNAL-TRIGGER-OCCURED-EVENT"/>
      <xsd:enumeration value="BSW-IMPLEMENTATION"/>
      <xsd:enumeration value="BSW-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="BSW-INTERNAL-TRIGGER-OCCURED-EVENT"/>
      <xsd:enumeration value="BSW-INTERRUPT-ENTITY"/>
      <xsd:enumeration value="BSW-MODE-SWITCH-EVENT"/>
      <xsd:enumeration value="BSW-MODULE-DEPENDENCY"/>
      <xsd:enumeration value="BSW-MODULE-DESCRIPTION"/>
      <xsd:enumeration value="BSW-MODULE-ENTITY"/>
      <xsd:enumeration value="BSW-MODULE-ENTRY"/>
      <xsd:enumeration value="BSW-MODULE-TIMING"/>
      <xsd:enumeration value="BSW-SCHEDULABLE-ENTITY"/>
      <xsd:enumeration value="BSW-TIMING-EVENT"/>
      <xsd:enumeration value="CCU"/>
      <xsd:enumeration value="CAN-CLUSTER"/>
      <xsd:enumeration value="CAN-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="CAN-FRAME-TRIGGERING"/>
      <xsd:enumeration value="CAN-NM-CLUSTER"/>
      <xsd:enumeration value="CAN-NM-NODE"/>
      <xsd:enumeration value="CAN-TP-CONFIG"/>
      <xsd:enumeration value="CAN-TP-NODE"/>
      <xsd:enumeration value="CERTIFIED-SYSTEMCONST-VALUE-SET"/>
      <xsd:enumeration value="CHAPTER"/>
      <xsd:enumeration value="CHOICE-CONTAINER-DEF"/>
      <xsd:enumeration value="CHOICE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="CLOCK"/>
      <xsd:enumeration value="CODE"/>
      <xsd:enumeration value="COLLECTION"/>
      <xsd:enumeration value="COM-MGR-USER-NEEDS"/>
      <xsd:enumeration value="COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="COMMUNICATION-HW-PORT"/>
      <xsd:enumeration value="COMMUNICATION-PERIPHERAL"/>
      <xsd:enumeration value="COMMUNICATION-PROTOCOL"/>
      <xsd:enumeration value="COMMUNICATION-TRANSCEIVER"/>
      <xsd:enumeration value="COMPILER"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPONENT-PROTOTYPE"/>
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPU-METHOD"/>
      <xsd:enumeration value="CONSTANT-REFERENCE"/>
      <xsd:enumeration value="CONSTANT-SPECIFICATION"/>
      <xsd:enumeration value="CONTAINER"/>
      <xsd:enumeration value="DAC"/>
      <xsd:enumeration value="DATA-CONSTR"/>
      <xsd:enumeration value="DATA-N-PDU"/>
      <xsd:enumeration value="DATA-RECEIVE-ERROR-EVENT"/>
      <xsd:enumeration value="DATA-RECEIVED-EVENT"/>
      <xsd:enumeration value="DATA-SEND-COMPLETED-EVENT"/>
      <xsd:enumeration value="DATA-TYPE-MAPPING-SET"/>
      <xsd:enumeration value="DCM-I-PDU"/>
      <xsd:enumeration value="DELEGATION-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="DELEGATION-HW-CONNECTION"/>
      <xsd:enumeration value="DEPENDENCY-ON-ARTIFACT"/>
      <xsd:enumeration value="DIAGNOSTIC-COMMUNICATION-NEEDS"/>
      <xsd:enumeration value="DIAGNOSTIC-EVENT-NEEDS"/>
      <xsd:enumeration value="DIGITAL-IO"/>
      <xsd:enumeration value="DISCRETE-ECU-ELECTRONICS"/>
      <xsd:enumeration value="DISPLAY-HW"/>
      <xsd:enumeration value="DOCUMENTATION"/>
      <xsd:enumeration value="ECU"/>
      <xsd:enumeration value="ECU-COMMUNICATION-PORT"/>
      <xsd:enumeration value="ECU-MAPPING"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="ECU-CONFIGURATION"/>
      <xsd:enumeration value="ECU-INSTANCE"/>
      <xsd:enumeration value="ECU-PARAMETER-DEFINITION"/>
      <xsd:enumeration value="ECU-STATE-MGR-USER-NEEDS"/>
      <xsd:enumeration value="ECU-TIMING"/>
      <xsd:enumeration value="ENUMERATION-LITERAL-DEF"/>
      <xsd:enumeration value="ENUMERATION-PARAM-DEF"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="ETHERNET-FRAME-TRIGGERING"/>
      <xsd:enumeration value="EXCLUSIVE-AREA"/>
      <xsd:enumeration value="EXECUTION-TIME"/>
      <xsd:enumeration value="EXTERNAL-TRIGGER-OCCURRED-EVENT"/>
      <xsd:enumeration value="FLAT-MAP"/>
      <xsd:enumeration value="FLEXRAY-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="FLEXRAY-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="FLEXRAY-FRAME-TRIGGERING"/>
      <xsd:enumeration value="FLEXRAY-NM-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-NM-NODE"/>
      <xsd:enumeration value="FLEXRAY-PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="FLEXRAY-TP-CONFIG"/>
      <xsd:enumeration value="FLEXRAY-TP-CONNECTION-CONTROL"/>
      <xsd:enumeration value="FLEXRAY-TP-NODE"/>
      <xsd:enumeration value="FLOAT-PARAM-DEF"/>
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
      <xsd:enumeration value="FOREIGN-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="FORMULA-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="FRAME"/>
      <xsd:enumeration value="FRAME-PORT"/>
      <xsd:enumeration value="FUNCTION-INHIBITION-NEEDS"/>
      <xsd:enumeration value="FUNCTION-NAME-DEF"/>
      <xsd:enumeration value="GATEWAY"/>
      <xsd:enumeration value="GENERAL-PARAMETER"/>
      <xsd:enumeration value="HW-CONTAINER"/>
      <xsd:enumeration value="HW-PIN"/>
      <xsd:enumeration value="HW-PORT"/>
      <xsd:enumeration value="I-PDU-GROUP"/>
      <xsd:enumeration value="I-PDU-PORT"/>
      <xsd:enumeration value="I-PDU-TRIGGERING"/>
      <xsd:enumeration value="I-SIGNAL"/>
      <xsd:enumeration value="I-SIGNAL-TO-I-PDU-MAPPING"/>
      <xsd:enumeration value="I-SIGNAL-TRIGGERING"/>
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
      <xsd:enumeration value="IMPLEMENTION-DATA-TYPE-ELEMENT"/>
      <xsd:enumeration value="INSTANCE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="INTEGER-PARAM-DEF"/>
      <xsd:enumeration value="INTERNAL-TRIGGER-OCCURRED-EVENT"/>
      <xsd:enumeration value="INTERNAL-TRIGGERING-POINT"/>
      <xsd:enumeration value="INTERRUPT-CONSUME-HW-PORT"/>
      <xsd:enumeration value="INTERRUPT-PRODUCE-HW-PORT"/>
      <xsd:enumeration value="J-1939-TP-CONFIG"/>
      <xsd:enumeration value="J-1939-TP-NODE"/>
      <xsd:enumeration value="LIN-CLUSTER"/>
      <xsd:enumeration value="LIN-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="LIN-EVENT-TRIGGERED-FRAME"/>
      <xsd:enumeration value="LIN-FRAME-TRIGGERING"/>
      <xsd:enumeration value="LIN-MASTER"/>
      <xsd:enumeration value="LIN-PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="LIN-SCHEDULE-TABLE"/>
      <xsd:enumeration value="LIN-SLAVE"/>
      <xsd:enumeration value="LIN-SPORADIC-FRAME"/>
      <xsd:enumeration value="LIN-TP-CONFIG"/>
      <xsd:enumeration value="LIN-TP-NODE"/>
      <xsd:enumeration value="LIN-UNCONDITIONAL-FRAME"/>
      <xsd:enumeration value="LINKER"/>
      <xsd:enumeration value="LINKER-SYMBOL-DEF"/>
      <xsd:enumeration value="MEASURED-EXECUTION-TIME"/>
      <xsd:enumeration value="MEASURED-HEAP-USAGE"/>
      <xsd:enumeration value="MEASURED-STACK-USAGE"/>
      <xsd:enumeration value="MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION"/>
      <xsd:enumeration value="MEMORY-MAPPED-DELEGATION-HW-CONNECTION"/>
      <xsd:enumeration value="MEMORY-MAPPED-HW-PORT"/>
      <xsd:enumeration value="MEMORY-SECTION"/>
      <xsd:enumeration value="MODE-DECLARATION"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP-PROTOTYPE"/>
      <xsd:enumeration value="MODE-INTERFACE"/>
      <xsd:enumeration value="MODE-INTERFACE-MAPPING"/>
      <xsd:enumeration value="MODE-SWITCH-POINT"/>
      <xsd:enumeration value="MODE-SWITCHED-ACK-EVENT"/>
      <xsd:enumeration value="MODULE-CONFIGURATION"/>
      <xsd:enumeration value="MODULE-DEF"/>
      <xsd:enumeration value="MULTILINE-STRING-PARAM-DEF"/>
      <xsd:enumeration value="MULTIPLEXED-I-PDU"/>
      <xsd:enumeration value="NM-CONFIG"/>
      <xsd:enumeration value="NM-ECU"/>
      <xsd:enumeration value="NM-PDU"/>
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
      <xsd:enumeration value="NV-BLOCK-DESCRIPTOR"/>
      <xsd:enumeration value="NV-BLOCK-NEEDS"/>
      <xsd:enumeration value="NV-DATA-INTERFACE"/>
      <xsd:enumeration value="OBD-CONTROL-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-INFO-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-MONITOR-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-PID-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-RATIO-SERVICE-NEEDS"/>
      <xsd:enumeration value="OPERATION-INVOKED-EVENT"/>
      <xsd:enumeration value="OPERATION-PROTOTYPE"/>
      <xsd:enumeration value="OSCILLATOR"/>
      <xsd:enumeration value="P-PORT-PROTOTYPE"/>
      <xsd:enumeration value="PWD"/>
      <xsd:enumeration value="PWM"/>
      <xsd:enumeration value="PARAM-CONF-CONTAINER-DEF"/>
      <xsd:enumeration value="PARAMETER-ACCESS"/>
      <xsd:enumeration value="PARAMETER-COMPONENT-TYPE"/>
      <xsd:enumeration value="PARAMETER-DATA-PROTOTYPE"/>
      <xsd:enumeration value="PARAMETER-INTERFACE"/>
      <xsd:enumeration value="PDU-TO-FRAME-MAPPING"/>
      <xsd:enumeration value="PER-INSTANCE-MEMORY"/>
      <xsd:enumeration value="PERIPHERAL"/>
      <xsd:enumeration value="PERIPHERAL-HW-PORT"/>
      <xsd:enumeration value="PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="PHYSICAL-DIMENSION"/>
      <xsd:enumeration value="PORT-INTERFACE-MAPPING-GROUP"/>
      <xsd:enumeration value="POST-BUILD-VARIANT-CRITERION"/>
      <xsd:enumeration value="POWER-DRIVER-HW-ELEMENT"/>
      <xsd:enumeration value="POWER-DRIVER-HW-PORT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-ELEMENT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-PORT"/>
      <xsd:enumeration value="PRIMITIVE-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="PROCESSING-UNIT"/>
      <xsd:enumeration value="PROVIDED-MEMORY-SEGMENT"/>
      <xsd:enumeration value="PROVIDED-NV-MEMORY-SEGMENT"/>
      <xsd:enumeration value="R-PORT-PROTOTYPE"/>
      <xsd:enumeration value="RECORD-VALUE-FIELD"/>
      <xsd:enumeration value="RECORD-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="RESOURCE-CONSUMPTION"/>
      <xsd:enumeration value="ROUGH-ESTIMATE-HEAP-USAGE"/>
      <xsd:enumeration value="ROUGH-ESTIMATE-OF-EXECUTION-TIME"/>
      <xsd:enumeration value="ROUGH-ESTIMATE-STACK-USAGE"/>
      <xsd:enumeration value="RUNNABLE-ENTITY"/>
      <xsd:enumeration value="SENDER-RECEIVER-INTERFACE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SENSOR-HW"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SERVICE-NEEDS"/>
      <xsd:enumeration value="SIGNAL-I-PDU"/>
      <xsd:enumeration value="SIGNAL-PORT"/>
      <xsd:enumeration value="SIMULATED-EXECUTION-TIME"/>
      <xsd:enumeration value="SOFTWARE-COMPONENT-DOCUMENTATION"/>
      <xsd:enumeration value="SOFTWARE-COMPOSITION"/>
      <xsd:enumeration value="STRING-PARAM-DEF"/>
      <xsd:enumeration value="SUPERVISED-ENTITY-NEEDS"/>
      <xsd:enumeration value="SUPPORTED-DATA-TYPE"/>
      <xsd:enumeration value="SW-ADDR-METHOD"/>
      <xsd:enumeration value="SW-AXIS-TYPE"/>
      <xsd:enumeration value="SW-BASE-TYPE"/>
      <xsd:enumeration value="SW-CALPRM-PROTOTYPE"/>
      <xsd:enumeration value="SW-CLASS-ATTR-IMPL"/>
      <xsd:enumeration value="SW-CLASS-INSTANCE"/>
      <xsd:enumeration value="SW-CLASS-PROTOTYPE"/>
      <xsd:enumeration value="SW-CODE-SYNTAX"/>
      <xsd:enumeration value="SW-GENERIC-AXIS-PARAM-TYPE"/>
      <xsd:enumeration value="SW-RECORD-LAYOUT"/>
      <xsd:enumeration value="SW-SERVICE"/>
      <xsd:enumeration value="SW-SERVICE-ARG"/>
      <xsd:enumeration value="SW-SERVICE-PROTOTYPE"/>
      <xsd:enumeration value="SW-SYSTEMCONST"/>
      <xsd:enumeration value="SW-SYSTEMCONSTANT-VALUE-SET"/>
      <xsd:enumeration value="SW-VARIABLE-PROTOTYPE"/>
      <xsd:enumeration value="SWC-IMPLEMENTATION"/>
      <xsd:enumeration value="SWC-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="SWC-MODE-SWITCH-EVENT"/>
      <xsd:enumeration value="SWC-SERVICE-DEPENDENCY"/>
      <xsd:enumeration value="SWC-TIMING"/>
      <xsd:enumeration value="SWC-TO-ECU-MAPPING"/>
      <xsd:enumeration value="SWC-TO-IMPL-MAPPING"/>
      <xsd:enumeration value="SYMBOLIC-NAME-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="SYNCHRONOUS-SERVER-CALL-POINT"/>
      <xsd:enumeration value="SYSTEM"/>
      <xsd:enumeration value="SYSTEM-MAPPING"/>
      <xsd:enumeration value="SYSTEM-SIGNAL"/>
      <xsd:enumeration value="SYSTEM-SIGNAL-GROUP"/>
      <xsd:enumeration value="SYSTEM-TIMING"/>
      <xsd:enumeration value="TD-EVENT-BSW"/>
      <xsd:enumeration value="TD-EVENT-BSW-BEHAVIOR"/>
      <xsd:enumeration value="TD-EVENT-DATA-ELEMENT"/>
      <xsd:enumeration value="TD-EVENT-FR-CLUSTER-CYCLE-START"/>
      <xsd:enumeration value="TD-EVENT-FRAME"/>
      <xsd:enumeration value="TD-EVENT-I-PDU"/>
      <xsd:enumeration value="TD-EVENT-I-SIGNAL"/>
      <xsd:enumeration value="TD-EVENT-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="TD-EVENT-OPERATION"/>
      <xsd:enumeration value="TD-EVENT-TT-CAN-CYCLE-START"/>
      <xsd:enumeration value="TIMER"/>
      <xsd:enumeration value="TIMING-DESCRIPTION-EVENT-CHAIN"/>
      <xsd:enumeration value="TIMING-EVENT"/>
      <xsd:enumeration value="TOPIC-1"/>
      <xsd:enumeration value="TP-ADDRESS"/>
      <xsd:enumeration value="TRIGGER"/>
      <xsd:enumeration value="TRIGGER-INTERFACE"/>
      <xsd:enumeration value="TRIGGER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="TTCAN-CLUSTER"/>
      <xsd:enumeration value="TTCAN-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="UDP-NM-CLUSTER"/>
      <xsd:enumeration value="UDP-NM-NODE"/>
      <xsd:enumeration value="UNIT"/>
      <xsd:enumeration value="UNIT-GROUP"/>
      <xsd:enumeration value="VARIABLE-ACCESS"/>
      <xsd:enumeration value="VARIABLE-AND-PARAMETER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="VARIABLE-DATA-PROTOTYPE"/>
      <xsd:enumeration value="VFB-TIMING"/>
      <xsd:enumeration value="WAIT-POINT"/>
      <xsd:enumeration value="WATCH-DOG"/>
      <xsd:enumeration value="WORST-CASE-EXECUTION-TIME"/>
      <xsd:enumeration value="WORST-CASE-HEAP-USAGE"/>
      <xsd:enumeration value="WORST-CASE-STACK-USAGE"/>
      <xsd:enumeration value="XCP-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Implementation::Implementation -->
  <xsd:group name="IMPLEMENTATION">
    <xsd:annotation>
      <xsd:documentation>Description of an implementation a single software component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CODE-DESCRIPTORS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CODE" type="AR:CODE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPILERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPILER" type="AR:COMPILER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="GENERATED-ARTIFACTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DEPENDENCY-ON-ARTIFACT" type="AR:DEPENDENCY-ON-ARTIFACT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LINKERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="LINKER" type="AR:LINKER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROCESSOR-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PROCESSOR-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:PROCESSING-UNIT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROGRAMMING-LANGUAGE" type="AR:PROGRAMMINGLANGUAGE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Programming language the implementation was created in.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REQUIRED-ARTIFACTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DEPENDENCY-ON-ARTIFACT" type="AR:DEPENDENCY-ON-ARTIFACT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-GENERATOR-TOOLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DEPENDENCY-ON-ARTIFACT" type="AR:DEPENDENCY-ON-ARTIFACT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RESOURCE-CONSUMPTION" type="AR:RESOURCE-CONSUMPTION" minOccurs="0"/>
      <xsd:element name="SW-MAJOR-VERSION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Major version number of this implementation. The numbering is vendor specific.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-MINOR-VERSION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minor version number of this implementation. The numbering is vendor specific.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-PATCH-VERSION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Patch version number of this implementation. The numbering is vendor specific.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="USED-CODE-GENERATOR" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Optional: code generator used.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VENDOR-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Vendor ID of this Implementation according to the AUTOSAR vendor list</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUCParameterDefTemplate::ImplementationConfigClass -->
  <xsd:group name="IMPLEMENTATION-CONFIG-CLASS">
    <xsd:annotation>
      <xsd:documentation>Specifies which ConfigurationClass this parameter has in the individual ConfigurationVariants.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONFIG-CLASS" type="AR:CONFIGURATION-CLASS" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the ConfigurationClass for the given ConfigurationVariant.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CONFIG-VARIANT" type="AR:CONFIGURATION-VARIANT" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the ConfigurationVariant the ConfigurationClass is specified for.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ImplementationConfigClass -->
  <xsd:complexType name="IMPLEMENTATION-CONFIG-CLASS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies which ConfigurationClass this parameter has in the individual ConfigurationVariants.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:IMPLEMENTATION-CONFIG-CLASS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ImplementationDataTypes::ImplementationDataType -->
  <xsd:group name="IMPLEMENTATION-DATA-TYPE">
    <xsd:annotation>
      <xsd:documentation>Describes a reusable data type on the implementaiton level, in C it will be a typedef.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SUB-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="IMPLEMENTION-DATA-TYPE-ELEMENT" type="AR:IMPLEMENTION-DATA-TYPE-ELEMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ImplementationDataTypes::ImplementationDataType -->
  <xsd:complexType name="IMPLEMENTATION-DATA-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes a reusable data type on the implementaiton level, in C it will be a typedef.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:IMPLEMENTATION-DATA-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="IMPLEMENTATION-DATA-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ImplementationDataTypes::ImplementionDataTypeElement -->
  <xsd:group name="IMPLEMENTION-DATA-TYPE-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>Declares an element of an array or struct. This element either consists of further subElements or is further defined via its swDataDefProps.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SUB-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="IMPLEMENTION-DATA-TYPE-ELEMENT" type="AR:IMPLEMENTION-DATA-TYPE-ELEMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-ARRAY-SIZE" type="AR:VALUE-LIST" minOccurs="0"/>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ImplementationDataTypes::ImplementionDataTypeElement -->
  <xsd:complexType name="IMPLEMENTION-DATA-TYPE-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Declares an element of an array or struct. This element either consists of further subElements or is further defined via its swDataDefProps.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IMPLEMENTION-DATA-TYPE-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ListElements::IndentSample -->
  <xsd:group name="INDENT-SAMPLE">
    <xsd:annotation>
      <xsd:documentation>Use &lt;indentSample&gt; to set the amount of indentation for the parent object.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__INDENT-SAMPLE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="L-2" type="AR:L-OVERVIEW-PARAGRAPH" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::IndentSample -->
  <xsd:attributeGroup name="INDENT-SAMPLE">
    <xsd:annotation>
      <xsd:documentation>Use &lt;indentSample&gt; to set the amount of indentation for the parent object.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__INDENT-SAMPLE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="ITEM-LABEL-POS" type="AR:ITEM-LABEL-POS-ENUM">
      <xsd:annotation>
        <xsd:documentation>The position of the label in case the label is too long. The default is  "NO-NEWLINE"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="NO-NEWLINE";msr.id="INDENT-SAMPLE_TYPE__INDENT-SAMPLE_TYPE__ITEM-LABEL-POS";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::IndentSample -->
  <xsd:complexType name="INDENT-SAMPLE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;indentSample&gt; to set the amount of indentation for the parent object.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__INDENT-SAMPLE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:INDENT-SAMPLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:INDENT-SAMPLE"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::IndexedArrayElement -->
  <xsd:group name="INDEXED-ARRAY-ELEMENT">
    <xsd:sequence>
      <xsd:element name="ARRAY-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-ARRAY-ELEMENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INDEX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Position of an element in an array.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::IndexedArrayElement -->
  <xsd:complexType name="INDEXED-ARRAY-ELEMENT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:INDEXED-ARRAY-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InputOutputLatencyConstraint::InputOutputLatencyConstraint -->
  <xsd:group name="INPUT-OUTPUT-LATENCY-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This is the abstract parent class of timing constraints that are used to restrict latencies introduced by hardware I/O (e.g. physical sensors / actuators) already at VFB level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAXIMUM-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MINIMUM-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NOMINAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ECUCParameterDefTemplate::InstanceReferenceParamDef -->
  <xsd:group name="INSTANCE-REFERENCE-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Specify a reference to an XML description of an entity desribed in another AUTOSAR template using the INSTANCE REFERENCE semantics.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESTINATION-CONTEXT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The context in the AUTOSAR Metamodel to which' this reference is allowed to point to.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DESTINATION-TYPE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The type in the AUTOSAR Metamodel to which' instance this reference is allowed to point to.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::InstanceReferenceParamDef -->
  <xsd:complexType name="INSTANCE-REFERENCE-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specify a reference to an XML description of an entity desribed in another AUTOSAR template using the INSTANCE REFERENCE semantics.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:INSTANCE-REFERENCE-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::InstanceReferenceValue -->
  <xsd:group name="INSTANCE-REFERENCE-VALUE">
    <xsd:annotation>
      <xsd:documentation>InstanceReference representation in the ECU Configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" type="AR:ANY-INSTANCE-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::InstanceReferenceValue -->
  <xsd:complexType name="INSTANCE-REFERENCE-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>InstanceReference representation in the ECU Configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CONFIG-REFERENCE-VALUE"/>
      <xsd:group ref="AR:INSTANCE-REFERENCE-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InstantiationDataDefProps::InstantiationDataDefProps -->
  <xsd:group name="INSTANTIATION-DATA-DEF-PROPS">
    <xsd:annotation>
      <xsd:documentation>This is a general class allowing to apply additional SwDataDefProps to particular instantiations of a DataPrototype.

Typically the accessibility and further information like alias names for a  particular data is modeled on the level of DataPrototypes (especially  VariableDataPrototypes, ParameterDataPrototypes). But due to the recursive  structure of the MetaModel concerning data types [a Composit(Data)Type consists  out of DataPrototypes] a part of the MCD information is described in the data  type (in case of CompositType).

This is a strong restriction in the reuse of data typed because the data type should be re-used  for different VariableDataPrototypes and ParameterDataPrototypes to guarantee type  compatibility on C-implementation level (e.g. data of a Port is stored in PIM  or NvRom Block shall be from same data type as NvRAM Block).

This class overcomes such a restriction if applied properly.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-PROTOTYPE-IREF" type="AR:AR-VARIABLE-OR-PARAMETER-REF--DATA-PROTOTYPE-IREF" minOccurs="0"/>
      <xsd:element name="LOCAL-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:AUTOSAR-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstantiationDataDefProps::InstantiationDataDefProps -->
  <xsd:complexType name="INSTANTIATION-DATA-DEF-PROPS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is a general class allowing to apply additional SwDataDefProps to particular instantiations of a DataPrototype.

Typically the accessibility and further information like alias names for a  particular data is modeled on the level of DataPrototypes (especially  VariableDataPrototypes, ParameterDataPrototypes). But due to the recursive  structure of the MetaModel concerning data types [a Composit(Data)Type consists  out of DataPrototypes] a part of the MCD information is described in the data  type (in case of CompositType).

This is a strong restriction in the reuse of data typed because the data type should be re-used  for different VariableDataPrototypes and ParameterDataPrototypes to guarantee type  compatibility on C-implementation level (e.g. data of a Port is stored in PIM  or NvRom Block shall be from same data type as NvRAM Block).

This class overcomes such a restriction if applied properly.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:INSTANTIATION-DATA-DEF-PROPS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::IntegerParamDef -->
  <xsd:group name="INTEGER-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Integer.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Default value of the integer configuration parameter.

atpVariation: [ECUC00083]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>max value allowed for the parameter defined.

atpVariation: [ECUC00084]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>min value allowed for the parameter defined.

atpVariation: [ECUC00084]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::IntegerParamDef -->
  <xsd:complexType name="INTEGER-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Integer.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:INTEGER-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class InternalBehavior::InternalBehavior -->
  <xsd:group name="INTERNAL-BEHAVIOR">
    <xsd:annotation>
      <xsd:documentation>Common base class (abstract) for the internal behavior of both software components and basic sofware modules/clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONSTANT-MEMORYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-DATA-PROTOTYPE" type="AR:PARAMETER-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EXCLUSIVE-AREAS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="EXCLUSIVE-AREA" type="AR:EXCLUSIVE-AREA"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="STATIC-MEMORYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE" type="AR:VARIABLE-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class GlobalConstraints::InternalConstrs -->
  <xsd:group name="INTERNAL-CONSTRS">
    <xsd:sequence>
      <xsd:element name="LOWER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
      <xsd:element name="UPPER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GlobalConstraints::InternalConstrs -->
  <xsd:complexType name="INTERNAL-CONSTRS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:INTERNAL-CONSTRS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::InternalTriggerOccurredEvent -->
  <xsd:group name="INTERNAL-TRIGGER-OCCURRED-EVENT">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced internal trigger have been occurred.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:INTERNAL-TRIGGERING-POINT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::InternalTriggerOccurredEvent -->
  <xsd:complexType name="INTERNAL-TRIGGER-OCCURRED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced internal trigger have been occurred.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:INTERNAL-TRIGGER-OCCURRED-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Trigger::InternalTriggeringPoint -->
  <xsd:group name="INTERNAL-TRIGGERING-POINT">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a internalTriggeringPoint, it has the possibility to trigger the execution of an other runnables of this software-component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Trigger::InternalTriggeringPoint -->
  <xsd:complexType name="INTERNAL-TRIGGERING-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a internalTriggeringPoint, it has the possibility to trigger the execution of an other runnables of this software-component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="INTERNAL-TRIGGERING-POINT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="INTERNAL-TRIGGERING-POINT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ProcessingUnit::InterruptConsumeHWPort -->
  <xsd:group name="INTERRUPT-CONSUME-HW-PORT">
    <xsd:annotation>
      <xsd:documentation>This port represents the drain of an interrupt request, i.e. the HWElement (in the majority of cases this will be a ProcessingUnit) to which this HWPort is attached is capable of accepting interrupt requests.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTIVATION-SOURCE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines which hardware resource activate the interrupt. Typically any peripheral HW Element  can activate an interrupt.  E.g. CAN, SCI, SPI, Timer, ADC. Even simple digital I/O can activate an interrupt. Some microC have in this context dedicatated pins which act only as activation for interrupt. The connection from the according HW Element is made by the HW Port.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LATENCY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Interrupt Latency: time passed from the occurrence of the interrupt request until the interrupt service routine is entered
- HW: Register organisation; operations are necessary for context save.
- SW: As SW can control the enabling/disabling of the interrupt SW determines a great part of the according time.
- System: several constraints define the min/max times allowed for software to enable / disable interrupts.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MASKABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if interrupts can be selected to be processed by the interrupt controller.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PRIORITY" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Some processing units offer different interrupt levels. It describes the priority in which the incoming interrupts are handled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ProcessingUnit::InterruptConsumeHWPort -->
  <xsd:complexType name="INTERRUPT-CONSUME-HW-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This port represents the drain of an interrupt request, i.e. the HWElement (in the majority of cases this will be a ProcessingUnit) to which this HWPort is attached is capable of accepting interrupt requests.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:INTERRUPT-CONSUME-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ProcessingUnit::InterruptHWPort -->
  <xsd:group name="INTERRUPT-HW-PORT">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class ProcessingUnit::InterruptProduceHWPort -->
  <xsd:group name="INTERRUPT-PRODUCE-HW-PORT">
    <xsd:annotation>
      <xsd:documentation>This port represents the source of an interrupt request, i.e. the HWElement to which this port is attached is capable of raising interrupt requests.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ProcessingUnit::InterruptProduceHWPort -->
  <xsd:complexType name="INTERRUPT-PRODUCE-HW-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This port represents the source of an interrupt request, i.e. the HWElement to which this port is attached is capable of raising interrupt requests.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="INTERRUPT-PRODUCE-HW-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="INTERRUPT-PRODUCE-HW-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ApplicationAttributes::IoHwAbstractionServerAnnotation -->
  <xsd:group name="IO-HW-ABSTRACTION-SERVER-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>The IoHwAbstractionPort Annotation will only be used from a sensor- or an actuator component while interacting with the IoHwAbstraction layer</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AGE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>In case of a SET operation, the age will be interpreted as Delay while in a GET operation (input) it specifies the Lifetime of the signal within the IoHwAbstraction Layer</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ARGUMENT-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ARGUMENT-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="BSW-RANGE-MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the maximum value of the Range the ECU-Signal is supposed to have</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BSW-RANGE-MIN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the maximum value of the Range the ECU-Signal is supposed to have.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BSW-RESOLUTION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This value is determined by an appropriate combination of the range, the unit as well as the data-elements type, i.e. (BswRangeMax-BswRangeMin) / (2^datatypelength - 1)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="FAILURE-MONITORING-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FILTERING-DEBOUNCING" type="AR:FILTER-DEBOUNCING-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute is used to indicate what kind of filtering/debouncing has been put to the signal in the IoHwAbstraction layer. 

rawData means that no modification of the signal has been applied.This is the default value
debounceData means that the signal is a mean value
waitTimeData means that the signal is delivered by a GET operation after a certain amount of time</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PULSE-TEST" type="AR:PULSE-TEST-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute indicates to the connected SensorActuatorSoftwareComponentType whether the VariableDataPrototype can be used to generate pulse test sequences using the IoHwAbstraction layer</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UNIT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>These are either electrical units like Volts (V) or time units like milliseconds (ms). The unit is set according to the ECU Input signal class which is either analogue or modulation</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VARIABLE-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::IoHwAbstractionServerAnnotation -->
  <xsd:complexType name="IO-HW-ABSTRACTION-SERVER-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The IoHwAbstractionPort Annotation will only be used from a sensor- or an actuator component while interacting with the IoHwAbstraction layer</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:IO-HW-ABSTRACTION-SERVER-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SystemConstant::IsSyscond -->
  <xsd:group name="IS-SYSCOND">
    <xsd:annotation>
      <xsd:documentation>This abstract class makes all its specialization dependant on a so called system condition. If the expression in swSyscond evaluates to greater than "0", then the object exists. Otherwise it is treated as removed.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__IS-SYSCOND_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-SYSCOND" type="AR:CONDITION-BY-FORMULA" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class IssueEnvironment::IssueEngineeringObject -->
  <xsd:group name="ISSUE-ENGINEERING-OBJECT">
    <xsd:annotation>
      <xsd:documentation>This denotes an engineering object being part of the process. The class does not specify a reference to a physical filename or ressource. It rather specifies properties of the engineering object which allows to identify it via its metadata within an engineering data management system.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SDGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SDG" type="AR:SDG"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class IssueEnvironment::IssueEngineeringObject -->
  <xsd:complexType name="ISSUE-ENGINEERING-OBJECT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This denotes an engineering object being part of the process. The class does not specify a reference to a physical filename or ressource. It rather specifies properties of the engineering object which allows to identify it via its metadata within an engineering data management system.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ENGINEERING-OBJECT"/>
      <xsd:group ref="AR:ISSUE-ENGINEERING-OBJECT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ListElements::Item -->
  <xsd:group name="ITEM">
    <xsd:annotation>
      <xsd:documentation>Use &lt;item&gt; to create entries in a &lt;list&gt;.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:DOCUMENTATION-BLOCK"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::Item -->
  <xsd:attributeGroup name="ITEM">
    <xsd:annotation>
      <xsd:documentation>Use &lt;item&gt; to create entries in a &lt;list&gt;.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::Item -->
  <xsd:complexType name="ITEM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;item&gt; to create entries in a &lt;list&gt;.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ITEM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:ITEM"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::J1939TpConfig -->
  <xsd:group name="J-1939-TP-CONFIG">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one J1939 TP Configuration. 

One J1939TpConfig element shall be created for each J1939 Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TP-ADDRESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-ADDRESS" type="AR:TP-ADDRESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-CONNECTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="J-1939-TP-CONNECTION" type="AR:J-1939-TP-CONNECTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-NODES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="J-1939-TP-NODE" type="AR:J-1939-TP-NODE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::J1939TpConfig -->
  <xsd:complexType name="J-1939-TP-CONFIG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one J1939 TP Configuration. 

One J1939TpConfig element shall be created for each J1939 Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:J-1939-TP-CONFIG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::J1939TpConnection -->
  <xsd:group name="J-1939-TP-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>A J1939TpConnection represents an internal path for the transmission or reception of a Pdu via J1939Tp and describes the the sender and the receiver of this particular communication. The J1939Tp module routes a Pdu (J1939 PGN) through the connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BROADCAST" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>BAM (Broadcast Announce Message)  is a broadcast protocol. If this attribute is set to true broadcast is used. Since address FF is the only broadcast address, there's no reason to configure it.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATA-N-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DATA-N-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DIRECT-N-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DATA-N-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FLOW-CONTROL-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="FLOW-CONTROL-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:FLOW-CONTROL-N-PDU--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RECEIVER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RECEIVER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:J-1939-TP-NODE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-SDU-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-SDU-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRANSMITTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:J-1939-TP-NODE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::J1939TpConnection -->
  <xsd:complexType name="J-1939-TP-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A J1939TpConnection represents an internal path for the transmission or reception of a Pdu via J1939Tp and describes the the sender and the receiver of this particular communication. The J1939Tp module routes a Pdu (J1939 PGN) through the connection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:J-1939-TP-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::J1939TpNode -->
  <xsd:group name="J-1939-TP-NODE">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONNECTOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-ADDRESS-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::J1939TpNode -->
  <xsd:complexType name="J-1939-TP-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:J-1939-TP-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="J-1939-TP-NODE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="J-1939-TP-NODE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LanguageDataModel::LLongName -->
  <xsd:group name="L-LONG-NAME">
    <xsd:annotation>
      <xsd:documentation>MixedContentForLongNames  in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-4_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LanguageDataModel::LLongName -->
  <xsd:complexType name="L-LONG-NAME" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>MixedContentForLongNames  in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-4_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-LONG-NAME"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class LanguageDataModel::LOverviewParagraph -->
  <xsd:group name="L-OVERVIEW-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>MixedContentForOverviewParagraph in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-2_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LanguageDataModel::LOverviewParagraph -->
  <xsd:complexType name="L-OVERVIEW-PARAGRAPH" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>MixedContentForOverviewParagraph in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-2_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-OVERVIEW-PARAGRAPH"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class LanguageDataModel::LParagraph -->
  <xsd:group name="L-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>This is the text for a paragraph in one particular language. The language is denoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-1_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LanguageDataModel::LParagraph -->
  <xsd:complexType name="L-PARAGRAPH" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This is the text for a paragraph in one particular language. The language is denoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-1_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-PARAGRAPH"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class LanguageDataModel::LPlainText -->
  <xsd:group name="L-PLAIN-TEXT">
    <xsd:annotation>
      <xsd:documentation>MixedContentForPlainText in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-10_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LanguageDataModel::LPlainText -->
  <xsd:complexType name="L-PLAIN-TEXT" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>MixedContentForPlainText in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-10_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class LanguageDataModel::LVerbatim -->
  <xsd:group name="L-VERBATIM">
    <xsd:annotation>
      <xsd:documentation>MixedContentForVerbatim in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-5_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LanguageDataModel::LVerbatim -->
  <xsd:complexType name="L-VERBATIM" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>MixedContentForVerbatim in one particular language. The language is dentoted in the attribute l.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__L-5_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-VERBATIM"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class ListElements::LabeledItem -->
  <xsd:group name="LABELED-ITEM">
    <xsd:annotation>
      <xsd:documentation>Use &lt;labeledItem&gt; to create an entry in a labeled list. The list can be nested by creating a new &lt;labeledList&gt; within the &lt;labeledItem&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LABELED-ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ITEM-LABEL" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:DOCUMENTATION-BLOCK"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::LabeledItem -->
  <xsd:attributeGroup name="LABELED-ITEM">
    <xsd:annotation>
      <xsd:documentation>Use &lt;labeledItem&gt; to create an entry in a labeled list. The list can be nested by creating a new &lt;labeledList&gt; within the &lt;labeledItem&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LABELED-ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::LabeledItem -->
  <xsd:complexType name="LABELED-ITEM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;labeledItem&gt; to create an entry in a labeled list. The list can be nested by creating a new &lt;labeledList&gt; within the &lt;labeledItem&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LABELED-ITEM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LABELED-ITEM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LABELED-ITEM"/>
  </xsd:complexType>
  <!-- element group for class ListElements::LabeledItemContents -->
  <xsd:group name="LABELED-ITEM-CONTENTS">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ListElements::LabeledItemContents -->
  <xsd:complexType name="LABELED-ITEM-CONTENTS" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ListElements::LabeledList -->
  <xsd:group name="LABELED-LIST">
    <xsd:annotation>
      <xsd:documentation>Use &lt;labeledList&gt; to create a list with labels that can be nested.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LABELED-LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INDENT-SAMPLE" type="AR:INDENT-SAMPLE" minOccurs="0"/>
      <xsd:element name="LABELED-ITEM" type="AR:LABELED-ITEM" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::LabeledList -->
  <xsd:attributeGroup name="LABELED-LIST">
    <xsd:annotation>
      <xsd:documentation>Use &lt;labeledList&gt; to create a list with labels that can be nested.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LABELED-LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::LabeledList -->
  <xsd:complexType name="LABELED-LIST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;labeledList&gt; to create a list with labels that can be nested.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LABELED-LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LABELED-LIST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LABELED-LIST"/>
  </xsd:complexType>
  <!-- element group for class LanguageDataModel::LanguageSpecific -->
  <xsd:group name="LANGUAGE-SPECIFIC">
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class LanguageDataModel::LanguageSpecific -->
  <xsd:attributeGroup name="LANGUAGE-SPECIFIC">
    <xsd:attribute name="L" type="AR:L-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class LanguageDataModel::LanguageSpecific -->
  <xsd:complexType name="LANGUAGE-SPECIFIC" abstract="false" mixed="false">
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class LatencyTimingConstraint::LatencyTimingConstraint -->
  <xsd:group name="LATENCY-TIMING-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>A LatencyTimingConstraint bounds the time duration between the occurrence of the stimulus and the corresponding response of the associated event chain. For each occurrence of the stimulus, the time duration until the corresponding response occurs must be within the specified latency constraint.

By default, the type of a LatencyTimingConstraint can be set to noSamplingEffects, if no under- and oversampling effects need to be considered for the associated event chain. In this case an one-to-one relation between the occurrences of the stimulus and the response can be assumed.

If under- and oversampling effects emerge a n-to-m relation between the occurrences of the stimulus and the response need to be considered. Thus, it must be specified, which particular occurrences of the stimulus and the response are bound by the constraint.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LATENCY-CONSTRAINT-TYPE" type="AR:LATENCY-CONSTRAINT-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The specific type of this latency constraint</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMUM-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MINIMUM-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NOMINAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SCOPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIMING-DESCRIPTION-EVENT-CHAIN--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LatencyTimingConstraint::LatencyTimingConstraint -->
  <xsd:complexType name="LATENCY-TIMING-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A LatencyTimingConstraint bounds the time duration between the occurrence of the stimulus and the corresponding response of the associated event chain. For each occurrence of the stimulus, the time duration until the corresponding response occurs must be within the specified latency constraint.

By default, the type of a LatencyTimingConstraint can be set to noSamplingEffects, if no under- and oversampling effects need to be considered for the associated event chain. In this case an one-to-one relation between the occurrences of the stimulus and the response can be assumed.

If under- and oversampling effects emerge a n-to-m relation between the occurrences of the stimulus and the response need to be considered. Thus, it must be specified, which particular occurrences of the stimulus and the response are bound by the constraint.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LATENCY-TIMING-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LocalConstraints::Limit -->
  <xsd:group name="LIMIT">
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class LocalConstraints::Limit -->
  <xsd:attributeGroup name="LIMIT">
    <xsd:attribute name="INTERVAL-TYPE" type="AR:INTERVAL-TYPE-ENUM">
      <xsd:annotation>
        <xsd:documentation>This specifies the type of the interval. If the attribute is missing, the interval shall be considered as "CLOSED"</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="LIMIT_TYPE__LIMIT_TYPE__INTERVAL-TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class LocalConstraints::Limit -->
  <xsd:complexType name="LIMIT" abstract="false" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-SYSTEMCONST-DEPENDANT-FORMULA"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LIMIT"/>
  </xsd:complexType>
  <!-- element group for class LinTopology::LinCluster -->
  <xsd:group name="LIN-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>LIN specific attributes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LinTopology::LinCluster -->
  <xsd:complexType name="LIN-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>LIN specific attributes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinTopology::LinCommunicationConnector -->
  <xsd:group name="LIN-COMMUNICATION-CONNECTOR">
    <xsd:annotation>
      <xsd:documentation>LIN bus specific communication connector attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INITIAL-NAD" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Initial NAD of the LIN slave</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LIN-CONFIGURABLE-FRAMES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="LIN-CONFIGURABLE-FRAME" type="AR:LIN-CONFIGURABLE-FRAME"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinTopology::LinCommunicationConnector -->
  <xsd:complexType name="LIN-COMMUNICATION-CONNECTOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>LIN bus specific communication connector attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CONNECTOR"/>
      <xsd:group ref="AR:LIN-COMMUNICATION-CONNECTOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinTopology::LinCommunicationController -->
  <xsd:group name="LIN-COMMUNICATION-CONTROLLER">
    <xsd:annotation>
      <xsd:documentation>LIN bus specific communication controller attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class LinTopology::LinConfigurableFrame -->
  <xsd:group name="LIN-CONFIGURABLE-FRAME">
    <xsd:annotation>
      <xsd:documentation>Configurable frames list all frames (unconditional frames, event-triggered frames and sporadic frames) processed by the slave node. 
This element is necessary for the LIN 2.1 Assign-Frame-PID-Range command. The order of the frames is important since the node configuration request assign frame PID range depends on the order.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FRAME--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MESSAGE-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>MessageId for the referenced frame</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinTopology::LinConfigurableFrame -->
  <xsd:complexType name="LIN-CONFIGURABLE-FRAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configurable frames list all frames (unconditional frames, event-triggered frames and sporadic frames) processed by the slave node. 
This element is necessary for the LIN 2.1 Assign-Frame-PID-Range command. The order of the frames is important since the node configuration request assign frame PID range depends on the order.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LIN-CONFIGURABLE-FRAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::LinConfigurationEntry -->
  <xsd:group name="LIN-CONFIGURATION-ENTRY">
    <xsd:annotation>
      <xsd:documentation>A ScheduleTableEntry which contains LIN specific assignments.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ASSIGNED-CONTROLLER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-SLAVE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class LinCommunication::LinErrorResponse -->
  <xsd:group name="LIN-ERROR-RESPONSE">
    <xsd:annotation>
      <xsd:documentation>Each slave node shall publish a one bit signal, named response_error, to the master node in one of its transmitted unconditional frames. The response_error signal shall be set whenever a frame (except for event triggered frame responses) that is transmitted or received by the slave node contains an error in the frame response. The response_error signal shall be cleared when the unconditional frame containing the response_error signal is successfully transmitted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-TRIGGERING-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-FRAME-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RESPONSE-ERROR-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the position of the ResponseError bit in the frame. Each slave node shall publish one response error in one of its transmitted unconditional frames.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinErrorResponse -->
  <xsd:complexType name="LIN-ERROR-RESPONSE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Each slave node shall publish a one bit signal, named response_error, to the master node in one of its transmitted unconditional frames. The response_error signal shall be set whenever a frame (except for event triggered frame responses) that is transmitted or received by the slave node contains an error in the frame response. The response_error signal shall be cleared when the unconditional frame containing the response_error signal is successfully transmitted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LIN-ERROR-RESPONSE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::LinEventTriggeredFrame -->
  <xsd:group name="LIN-EVENT-TRIGGERED-FRAME">
    <xsd:annotation>
      <xsd:documentation>An event triggered frame is used as a placeholder to allow multiple slave nodes to provide its response.

The header of an event triggered frame is transmitted when a frame slot allocated to the event triggered frame is processed. The publisher of an associated unconditional frame shall only transmit the response if at least one of the signals carried in its unconditional frame is updated. The LIN Master discovers and purges collisions with the collisionResolvingScheduleTable. 

The event controlled frame shall not contain any Pdus.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COLLISION-RESOLVING-SCHEDULE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-SCHEDULE-TABLE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LIN-UNCONDITIONAL-FRAME-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="LIN-UNCONDITIONAL-FRAME-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:LIN-UNCONDITIONAL-FRAME--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinEventTriggeredFrame -->
  <xsd:complexType name="LIN-EVENT-TRIGGERED-FRAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An event triggered frame is used as a placeholder to allow multiple slave nodes to provide its response.

The header of an event triggered frame is transmitted when a frame slot allocated to the event triggered frame is processed. The publisher of an associated unconditional frame shall only transmit the response if at least one of the signals carried in its unconditional frame is updated. The LIN Master discovers and purges collisions with the collisionResolvingScheduleTable. 

The event controlled frame shall not contain any Pdus.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME"/>
      <xsd:group ref="AR:LIN-EVENT-TRIGGERED-FRAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::LinFrameTriggering -->
  <xsd:group name="LIN-FRAME-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>LIN specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="IDENTIFIER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>To describe a frames identifier on the communication system, usualy with a fixed identifierValue. For LinSporadicFrames the attribute should be ignored.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinFrameTriggering -->
  <xsd:complexType name="LIN-FRAME-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>LIN specific attributes to the FrameTriggering</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME-TRIGGERING"/>
      <xsd:group ref="AR:LIN-FRAME-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="LIN-FRAME-TRIGGERING--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LIN-FRAME-TRIGGERING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinTopology::LinMaster -->
  <xsd:group name="LIN-MASTER">
    <xsd:annotation>
      <xsd:documentation>Describing the properties of the refering ecu as a LIN master.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIME-BASE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Time base is mandatory for the master. It is not used for slaves. 
LIN 2.0 Spec states: "The time_base value specifies the used time base in the master node to generate the maximum allowed frame transfer time." 
The time base shall be specified AUTOSAR conform in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-BASE-JITTER" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>timeBaseJitter is a mandatory attribute for the master and not used for slaves. 
LIN 2.0 Spec states: "The jitter value specifies the differences between the maximum and minimum delay from time base start point to the frame header sending start point (falling edge of BREAK signal)." 
The jitter shall be specified AUTOSAR conform in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinTopology::LinMaster -->
  <xsd:complexType name="LIN-MASTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describing the properties of the refering ecu as a LIN master.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:LIN-MASTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::LinPhysicalChannel -->
  <xsd:group name="LIN-PHYSICAL-CHANNEL">
    <xsd:sequence>
      <xsd:element name="SCHEDULE-TABLES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="LIN-SCHEDULE-TABLE" type="AR:LIN-SCHEDULE-TABLE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinPhysicalChannel -->
  <xsd:complexType name="LIN-PHYSICAL-CHANNEL" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PHYSICAL-CHANNEL"/>
      <xsd:group ref="AR:LIN-PHYSICAL-CHANNEL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::LinScheduleTable -->
  <xsd:group name="LIN-SCHEDULE-TABLE">
    <xsd:annotation>
      <xsd:documentation>The master task (in the master node) transmits frame headers based on a schedule table. The schedule table specifies the identifiers for each header and the interval between the start of a frame and the start of the following frame.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="RESUME-POSITION" type="AR:RESUME-POSITION" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines, where a schedule table shall be proceeded in case if it has been interrupted by a run-once table or MRF/SRF.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RUN-MODE" type="AR:RUN-MODE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The schedule table can be executed in two different modes.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TABLE-ENTRIESS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="APPLICATION-ENTRY" type="AR:APPLICATION-ENTRY"/>
            <xsd:element name="ASSIGN-FRAME-ID" type="AR:ASSIGN-FRAME-ID"/>
            <xsd:element name="ASSIGN-FRAME-ID-RANGE" type="AR:ASSIGN-FRAME-ID-RANGE"/>
            <xsd:element name="ASSIGN-NAD" type="AR:ASSIGN-NAD"/>
            <xsd:element name="CONDITIONAL-CHANGE-NAD" type="AR:CONDITIONAL-CHANGE-NAD"/>
            <xsd:element name="DATA-DUMP-ENTRY" type="AR:DATA-DUMP-ENTRY"/>
            <xsd:element name="FREE-FORMAT" type="AR:FREE-FORMAT"/>
            <xsd:element name="SAVE-CONFIGURATION-ENTRY" type="AR:SAVE-CONFIGURATION-ENTRY"/>
            <xsd:element name="UNASSIGN-FRAME-ID" type="AR:UNASSIGN-FRAME-ID"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinScheduleTable -->
  <xsd:complexType name="LIN-SCHEDULE-TABLE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The master task (in the master node) transmits frame headers based on a schedule table. The schedule table specifies the identifiers for each header and the interval between the start of a frame and the start of the following frame.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:LIN-SCHEDULE-TABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="LIN-SCHEDULE-TABLE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LIN-SCHEDULE-TABLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinTopology::LinSlave -->
  <xsd:group name="LIN-SLAVE">
    <xsd:annotation>
      <xsd:documentation>Describing the properties of the refering ecu as a LIN slave.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONFIGURED-NAD" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>To distinguish LIN slaves that are used twice or more within the same cluster.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="FUNCTION-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>LIN function ID</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LIN-ERROR-RESPONSE" type="AR:LIN-ERROR-RESPONSE" minOccurs="0"/>
      <xsd:element name="PROTOCOL-VERSION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Version specifier for a communication protocol.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SUPPLIER-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>LIN Supplier ID</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VARIANT-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the Variant ID</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinTopology::LinSlave -->
  <xsd:complexType name="LIN-SLAVE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describing the properties of the refering ecu as a LIN slave.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:LIN-SLAVE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="LIN-SLAVE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LIN-SLAVE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinCommunication::LinSporadicFrame -->
  <xsd:group name="LIN-SPORADIC-FRAME">
    <xsd:annotation>
      <xsd:documentation>A sporadic frame is a group of unconditional frames that share the same frame slot. The sporadic frame shall not contain any Pdus.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SUBSTITUTED-FRAME-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SUBSTITUTED-FRAME-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:LIN-UNCONDITIONAL-FRAME--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinSporadicFrame -->
  <xsd:complexType name="LIN-SPORADIC-FRAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A sporadic frame is a group of unconditional frames that share the same frame slot. The sporadic frame shall not contain any Pdus.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME"/>
      <xsd:group ref="AR:LIN-SPORADIC-FRAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::LinTpConfig -->
  <xsd:group name="LIN-TP-CONFIG">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one Lin TP Configuration. 

One LinTpConfig element shall be created for each Lin Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TP-ADDRESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TP-ADDRESS" type="AR:TP-ADDRESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-CONNECTION" type="AR:LIN-TP-CONNECTION" minOccurs="0"/>
      <xsd:element name="TP-NODES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="LIN-TP-NODE" type="AR:LIN-TP-NODE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::LinTpConfig -->
  <xsd:complexType name="LIN-TP-CONFIG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element defines exactly one Lin TP Configuration. 

One LinTpConfig element shall be created for each Lin Network in the System.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:LIN-TP-CONFIG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::LinTpConnection -->
  <xsd:group name="LIN-TP-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>A LinTP channel represents an internal path for the transmission or reception of a Pdu via LinTp
and describes the the sender and the receiver of this particular communication.

The LinTp module routes a Pdu through the connection channel</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DATA-N-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FLOW-CONTROL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FLOW-CONTROL-N-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LIN-TP-N-SDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MULTICAST-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RECEIVER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RECEIVER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:LIN-TP-NODE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRANSMITTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-TP-NODE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::LinTpConnection -->
  <xsd:complexType name="LIN-TP-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A LinTP channel represents an internal path for the transmission or reception of a Pdu via LinTp
and describes the the sender and the receiver of this particular communication.

The LinTp module routes a Pdu through the connection channel</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LIN-TP-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::LinTpNode -->
  <xsd:group name="LIN-TP-NODE">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONNECTOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TP-ADDRESS-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TP-ADDRESS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::LinTpNode -->
  <xsd:complexType name="LIN-TP-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TP Node (Sender or Receiver) provides the TP Address and the connection to the Topology description.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:LIN-TP-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="LIN-TP-NODE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LIN-TP-NODE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinCommunication::LinUnconditionalFrame -->
  <xsd:group name="LIN-UNCONDITIONAL-FRAME">
    <xsd:annotation>
      <xsd:documentation>Unconditional frames carry signals. The master sends a frame header in a scheduled frame slot and the designated slave node fills the frame with data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LinCommunication::LinUnconditionalFrame -->
  <xsd:complexType name="LIN-UNCONDITIONAL-FRAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Unconditional frames carry signals. The master sends a frame header in a scheduled frame slot and the designated slave node fills the frame with data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:FRAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="LIN-UNCONDITIONAL-FRAME--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LIN-UNCONDITIONAL-FRAME"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Implementation::Linker -->
  <xsd:group name="LINKER">
    <xsd:annotation>
      <xsd:documentation>Specifies the linker attributes used to decribe how the linker shall be invoked.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NAME" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Linker name.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPTIONS" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the linker options.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VENDOR" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Vendor of linker.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="VERSION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Exact version of linker executable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Implementation::Linker -->
  <xsd:complexType name="LINKER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the linker attributes used to decribe how the linker shall be invoked.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:LINKER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::LinkerSymbolDef -->
  <xsd:group name="LINKER-SYMBOL-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Linker Symbol Names like those used to specify memory locations of variables and constants.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::LinkerSymbolDef -->
  <xsd:complexType name="LINKER-SYMBOL-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for Linker Symbol Names like those used to specify memory locations of variables and constants.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:STRING-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ListElements::List -->
  <xsd:group name="LIST">
    <xsd:annotation>
      <xsd:documentation>Use &lt;list&gt; , to create a numbered or unnumbered list. The list can be nested by adding a new list inside the &lt;item&gt; element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ITEM" type="AR:ITEM" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class ListElements::List -->
  <xsd:attributeGroup name="LIST">
    <xsd:annotation>
      <xsd:documentation>Use &lt;list&gt; , to create a numbered or unnumbered list. The list can be nested by adding a new list inside the &lt;item&gt; element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
    <xsd:attribute name="TYPE" type="AR:LIST-ENUM">
      <xsd:annotation>
        <xsd:documentation>The type of the list. Default is "UNNUMBER"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="UNNUMBER";msr.id="LIST_TYPE__LIST_TYPE__TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class ListElements::List -->
  <xsd:complexType name="LIST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;list&gt; , to create a numbered or unnumbered list. The list can be nested by adding a new list inside the &lt;item&gt; element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__LIST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LIST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LIST"/>
  </xsd:complexType>
  <!-- element group for class ProcessingUnit::MPU -->
  <xsd:group name="MPU">
    <xsd:annotation>
      <xsd:documentation>A MPU provides means where the memory access within a defined program flow of a PU is controlled. In case of a failure an exception routine e.g. interrupt is activated.
A MPU is implemented as an independent hardware block in a device separate to the processing unit. A MPU does not perform any data manipulation, only in case of an error a change in the processor control flow is forced.
The number of individual checked memory ranges is limited to the registers available for specifying the memory ranges. One individual memory range is in the following referenced as MPU Channel.
In most cases the MPU consists of a set of registers, which do range checking of the addresses asserted by the program on the address bus as well as the access type to the according address. The checking of the address ranges is also coupled to the address range of the program, which runs under the control of the MPU.
The MPU also can be coupled with one of the different processing elements of a device like the PU itself, a DMA or a Coprocessor.
In order to have a broad usage of a MPU a specification of filter values is often allowed, so very user specific selection methods are possible.
Typical use case for a MPU: A 3rd party software routine is allowed only to access a defined memory-area. Any access outside the defined memory area will be denied and control will be transferred to the supervising operating system. A error handling routine will be started.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHANNEL-COUNT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the number of individual MPU channels are available.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROTECTED-MEMORY-HW-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PROTECTED-MEMORY-HW-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:MEMORY-MAPPED-HW-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RAISED-INTERRUPTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INTERRUPT-PRODUCE-HW-PORT" type="AR:INTERRUPT-PRODUCE-HW-PORT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ProcessingUnit::MPU -->
  <xsd:complexType name="MPU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A MPU provides means where the memory access within a defined program flow of a PU is controlled. In case of a failure an exception routine e.g. interrupt is activated.
A MPU is implemented as an independent hardware block in a device separate to the processing unit. A MPU does not perform any data manipulation, only in case of an error a change in the processor control flow is forced.
The number of individual checked memory ranges is limited to the registers available for specifying the memory ranges. One individual memory range is in the following referenced as MPU Channel.
In most cases the MPU consists of a set of registers, which do range checking of the addresses asserted by the program on the address bus as well as the access type to the according address. The checking of the address ranges is also coupled to the address range of the program, which runs under the control of the MPU.
The MPU also can be coupled with one of the different processing elements of a device like the PU itself, a DMA or a Coprocessor.
In order to have a broad usage of a MPU a specification of filter values is often allowed, so very user specific selection methods are possible.
Typical use case for a MPU: A 3rd party software routine is allowed only to access a defined memory-area. Any access outside the defined memory area will be denied and control will be transferred to the supervising operating system. A error handling routine will be started.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MPU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Figure::Map -->
  <xsd:group name="MAP">
    <xsd:annotation>
      <xsd:documentation>Image maps enable authors to specify regions of an image or object and assign a specific action to each region (e.g., retrieve a document, run a program, etc.) When the region is activated by the user, the action is executed.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MAP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AREA" type="AR:AREA" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Figure::Map -->
  <xsd:attributeGroup name="MAP">
    <xsd:annotation>
      <xsd:documentation>Image maps enable authors to specify regions of an image or object and assign a specific action to each region (e.g., retrieve a document, run a program, etc.) When the region is activated by the user, the action is executed.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MAP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="CLASS" type="xsd:string"/>
    <xsd:attribute name="NAME" type="xsd:string"/>
    <xsd:attribute name="ONCLICK" type="xsd:string"/>
    <xsd:attribute name="ONDBLCLICK" type="xsd:string"/>
    <xsd:attribute name="ONKEYDOWN" type="xsd:string"/>
    <xsd:attribute name="ONKEYPRESS" type="xsd:string"/>
    <xsd:attribute name="ONKEYUP" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEDOWN" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEMOVE" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEOUT" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEOVER" type="xsd:string"/>
    <xsd:attribute name="ONMOUSEUP" type="xsd:string"/>
    <xsd:attribute name="STYLE" type="xsd:string"/>
    <xsd:attribute name="TITLE" type="xsd:string"/>
  </xsd:attributeGroup>
  <!-- complex type for class Figure::Map -->
  <xsd:complexType name="MAP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Image maps enable authors to specify regions of an image or object and assign a specific action to each region (e.g., retrieve a document, run a program, etc.) When the region is activated by the user, the action is executed.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MAP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MAP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:MAP"/>
  </xsd:complexType>
  <!-- element group for class SWmapping::MappingConstraint -->
  <xsd:group name="MAPPING-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>Different constraints that may be used to limit the mapping of SW components to ECUs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class ExecutionTime::MeasuredExecutionTime -->
  <xsd:group name="MEASURED-EXECUTION-TIME">
    <xsd:annotation>
      <xsd:documentation>Specifies the ExecutionTime which has been gathered using measurement means.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AVERAGE-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Average MeasuredExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMAL-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum MeasuredExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINIMAL-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minumum MeasuredExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::MeasuredExecutionTime -->
  <xsd:complexType name="MEASURED-EXECUTION-TIME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the ExecutionTime which has been gathered using measurement means.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:EXECUTION-TIME"/>
      <xsd:group ref="AR:MEASURED-EXECUTION-TIME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class HeapUsage::MeasuredHeapUsage -->
  <xsd:group name="MEASURED-HEAP-USAGE">
    <xsd:annotation>
      <xsd:documentation>The heap usage has been measured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AVERAGE-MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The average heap usage measured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMUM-MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum heap usage measured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINIMUM-MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The minimum heap usage measured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TEST-PATTERN" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Description of the test pattern used to aquire the measured values.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class HeapUsage::MeasuredHeapUsage -->
  <xsd:complexType name="MEASURED-HEAP-USAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The heap usage has been measured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HEAP-USAGE"/>
      <xsd:group ref="AR:MEASURED-HEAP-USAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class StackUsage::MeasuredStackUsage -->
  <xsd:group name="MEASURED-STACK-USAGE">
    <xsd:annotation>
      <xsd:documentation>The stack usage has been measured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AVERAGE-MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The average stack usage measured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMUM-MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum stack usage measured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINIMUM-MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The minimum stack usage measured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TEST-PATTERN" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Description of the test pattern used to aquire the measured values.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class StackUsage::MeasuredStackUsage -->
  <xsd:complexType name="MEASURED-STACK-USAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The stack usage has been measured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:STACK-USAGE"/>
      <xsd:group ref="AR:MEASURED-STACK-USAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Memory::MemoryAccess -->
  <xsd:group name="MEMORY-ACCESS">
    <xsd:annotation>
      <xsd:documentation>Describes the different possible kinds of access to the memory and the time these access takes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCESS-TYPE" type="AR:MEMORY-ACCESS-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The element access type describes the different possible kinds of access to the memory.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME" type="AR:TIME-RANGE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Memory::MemoryAccess -->
  <xsd:complexType name="MEMORY-ACCESS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes the different possible kinds of access to the memory and the time these access takes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MEMORY-ACCESS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Memory::MemoryMappedAssemblyHWConnection -->
  <xsd:group name="MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>This connection is used to connect Memory HWPort on the same hierarchical level (inside one HW Container).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BASE-ADDRESS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the base address of the memory within the ECU template.
The same base address might be defined multiple times according to the access type and the architecture. A base address is uniquely bound to a defined memory segment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BYTE-ORDER" type="AR:BYTE-ORDER-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>When a PU stores data in a memory the ordering of the bytes can be done in two different ways. This storing scheme is normally fixed in the PU when more than one byte is stored in the memory. When the least significant byte is stored at the lowest address this architecture is called "mostSignificantByteLast" (aka little endian) and when the most significant byte is stored at the lowest address this is called "mostSignificantByteFirst" (aka big endian). Some CPU architectures like ARM and PowerPC can be configured to handle both little and big endian. This is called bi-endian. ByteOrder is very important when you communicate between different PUs or ECUs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CACHABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A memory segment may be cacheable. This has to be defined in the description of the segment connection.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="HW-CONNECTION-ACCESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MEMORY-ACCESS" type="AR:MEMORY-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SEGMENT-USAGES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SEGMENT-USAGE" type="AR:MEMORY-SEGMENT-USAGE-ENUM" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>The segment usage is defined in the linker memory map. Usually it is fixed within an operation mode but different operations modes have different memory usage.
The element segment usage contains the following attributes. 
- Data: The attribute data is used for all kind of data: constant, variable, calibration, system initialisation, system configuration, etc. 
- Code: The attribute code is used for the program code itself. 
- Stack: Memory usable for a system or software stack is in some cases only available on limited number of segments within a PU. 
- Boot: The boot memory is used to store program and data for the start up or test of an ECU. Within the boot program the basic ECU initialisation is performed. Furthermore some system maintenance programs, like the set-up for flash programming or loading of data via communication interface, can be part of the boot program. 
Boot memory is in general not a subject of AUTOSAR SW. 
-- Boot sector: Boot sector is the location in memory, preferable Flash or ROM, where the boot program is stored. The location of the boot sector might be dependant on the PU architecture as reset and interrupt vectors must be accessible during boot. The boot sector should be separated from other user accessible Flash or implemented as ROM. In Flash the boot sector should have the appropriate array size, some few kilobyte and provide protection mechanism against unintended erasure or system manipulation.
A system may have different boot sectors, one accessible only for testing the PU during the manufacturing and configuration of the PU, in factory test mode or some initial program mode, and a user boot mode. 
-- Mapping of boot sector: Mapping of the boot sector is useful to enhance the boot sequence and the release of the used resources during the boot phase at the later user mode, e.g. the use of reset vector and interrupt vector can be improved.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Memory::MemoryMappedAssemblyHWConnection -->
  <xsd:complexType name="MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This connection is used to connect Memory HWPort on the same hierarchical level (inside one HW Container).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-CONNECTION"/>
      <xsd:group ref="AR:ASSEMBLY-HW-CONNECTION"/>
      <xsd:group ref="AR:MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Memory::MemoryMappedDelegationHWConnection -->
  <xsd:group name="MEMORY-MAPPED-DELEGATION-HW-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>This connection is used to delegate a Memory HW Port to the outside of a HW Container. Typically this will used internally of a micro-controller.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Memory::MemoryMappedDelegationHWConnection -->
  <xsd:complexType name="MEMORY-MAPPED-DELEGATION-HW-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This connection is used to delegate a Memory HW Port to the outside of a HW Container. Typically this will used internally of a micro-controller.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-CONNECTION"/>
      <xsd:group ref="AR:DELEGATION-HW-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Memory::MemoryMappedHWPort -->
  <xsd:group name="MEMORY-MAPPED-HW-PORT">
    <xsd:sequence>
      <xsd:element name="DATA-INTERFACE-WIDTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The element defines the number of bits that can be transferred from the PU to the memory device or vice versa. The width of data bus are important characteristics. All technical characteristics of the memory are covered by the access time.
Unit: Bit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="HW-PORT-TYPE" type="AR:MEMORY-MAPPED-HW-PORT-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>the type of port</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Memory::MemoryMappedHWPort -->
  <xsd:complexType name="MEMORY-MAPPED-HW-PORT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:MEMORY-MAPPED-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MEMORY-MAPPED-HW-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MEMORY-MAPPED-HW-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class MemorySectionUsage::MemorySection -->
  <xsd:group name="MEMORY-SECTION">
    <xsd:annotation>
      <xsd:documentation>Provides a description of an abstract memory section used in the Implementation for code or data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ALIGNMENT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The alignment (typically 1, 2, 4,...)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RUNNABLE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RUNNABLE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:EXECUTABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SECTION-NAME" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the name of the section in the Implementation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SECTION-TYPE" type="AR:MEMORY-SECTION-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Memory section type of the described MemorySection.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The size in bytes of the section.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-ADDR-METHOD-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-ADDR-METHOD-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:SW-ADDR-METHOD--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MemorySectionUsage::MemorySection -->
  <xsd:complexType name="MEMORY-SECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Provides a description of an abstract memory section used in the Implementation for code or data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:MEMORY-SECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MEMORY-SECTION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MEMORY-SECTION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ExecutionTime::MemorySectionLocation -->
  <xsd:group name="MEMORY-SECTION-LOCATION">
    <xsd:annotation>
      <xsd:documentation>Specifes in which hardware ProvidedMemorySegment the softwareMemorySection is located.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PROVIDED-MEMORY-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PROVIDED-MEMORY-SEGMENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SOFTWARE-MEMORY-SECTION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MEMORY-SECTION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::MemorySectionLocation -->
  <xsd:complexType name="MEMORY-SECTION-LOCATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifes in which hardware ProvidedMemorySegment the softwareMemorySection is located.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MEMORY-SECTION-LOCATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextModel::MixedContentForLongName -->
  <xsd:group name="MIXED-CONTENT-FOR-LONG-NAME">
    <xsd:annotation>
      <xsd:documentation>This is the model for titles and long-names. It allows some emphasis and index entries but no reference target (which is provided by the identifiable in question). It is intended that the content model can also be rendered as plain text.

The abstract class can be used for single language as well as for multi language elements.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__mixed-content-4";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="TT" type="AR:TT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="E" type="AR:EMPHASIS-TEXT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sup&gt; to display sections of text within a paragraph element, in a smaller font above the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="50";msr.id="mixed-content-4__SUP"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sub&gt; to display sections of text within a paragraph element, in a smaller font beneath the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="60";msr.id="mixed-content-4__SUB"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="IE" type="AR:INDEX-ENTRY" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- element group for class InlineTextModel::MixedContentForOverviewParagraph -->
  <xsd:group name="MIXED-CONTENT-FOR-OVERVIEW-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>MixedContentForOverviewParagraph

This is the text model of a restricted paragraph item within a documentation. Such restricted paragraphs are used mainly for overview items, e.g. desc.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__mixed-content-2";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="BR" type="AR:BR" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="TT" type="AR:TT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XREF" type="AR:XREF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XREF-TARGET" type="AR:XREF-TARGET" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="E" type="AR:EMPHASIS-TEXT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="FT" type="AR:FOOTNOTE-TEXT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sup&gt; to display sections of text within a paragraph element, in a smaller font above the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="80";msr.id="mixed-content-2__SUP"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sub&gt; to display sections of text within a paragraph element, in a smaller font beneath the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="90";msr.id="mixed-content-2__SUB"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="IE" type="AR:INDEX-ENTRY" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- element group for class InlineTextModel::MixedContentForParagraph -->
  <xsd:group name="MIXED-CONTENT-FOR-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>MixedContentForParagraph

This mainly represents the text model of a full blown paragraph within a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__mixed-content-1";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="TT" type="AR:TT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="BR" type="AR:BR" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XREF" type="AR:XREF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XREF-TARGET" type="AR:XREF-TARGET" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="E" type="AR:EMPHASIS-TEXT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="FT" type="AR:FOOTNOTE-TEXT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sup&gt; to display sections of text within a paragraph element, in a smaller font above the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="90";msr.id="mixed-content-1__SUP"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sub&gt; to display sections of text within a paragraph element, in a smaller font beneath the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="100";msr.id="mixed-content-1__SUB"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="IE" type="AR:INDEX-ENTRY" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="STD" type="AR:STD" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XDOC" type="AR:XDOC" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XFILE" type="AR:XFILE" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- element group for class InlineTextModel::MixedContentForUnitNames -->
  <xsd:group name="MIXED-CONTENT-FOR-UNIT-NAMES">
    <xsd:annotation>
      <xsd:documentation>This is the text model for items with subscript and superscripts such as measurement unit designations. It is intended, that such models can easily be transcribed to a plain text model either by using appropriate characters or by transcribing like m^2.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__mixed-content-3";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sup&gt; to display sections of text within a paragraph element, in a smaller font above the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="30";msr.id="mixed-content-3__SUP"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sub&gt; to display sections of text within a paragraph element, in a smaller font beneath the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="40";msr.id="mixed-content-3__SUB"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- element group for class InlineTextModel::MixedContentForVerbatim -->
  <xsd:group name="MIXED-CONTENT-FOR-VERBATIM">
    <xsd:annotation>
      <xsd:documentation>mixedContentForVerbatim

This is the text model for preformatted (verbatim) text. It mainly consists of attributes which do not change the length on rendering.
This class represents multilingual verbatim. Verbatim, sometimes called preformatted text, means that whitespace is maintained. When verbatim is rendered in PDF or Online media, it is rendered using a monospaced font while whitespace is obeyed. Blanks are rendered as well as newline characters.

Even if there are inline elements, the length of the data must not be influenced by formatting.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__mixed-content-5";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="E" type="AR:EMPHASIS-TEXT" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="XREF" type="AR:XREF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="BR" type="AR:BR" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- element group for class Figure::MlFigure -->
  <xsd:group name="ML-FIGURE">
    <xsd:sequence>
      <xsd:element name="FIGURE-CAPTION" type="AR:CAPTION" minOccurs="0"/>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="ML-GRAPHIC" type="AR:ML-GRAPHIC"/>
      </xsd:choice>
      <xsd:element name="VERBATIM" type="AR:MULTI-LANGUAGE-VERBATIM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Figure::MlFigure -->
  <xsd:attributeGroup name="ML-FIGURE">
    <xsd:attribute name="FLOAT" type="AR:FLOAT-ENUM"/>
    <xsd:attribute name="FRAME" type="AR:FRAME-ENUM"/>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
    <xsd:attribute name="PGWIDE" type="AR:PGWIDE-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class Figure::MlFigure -->
  <xsd:complexType name="ML-FIGURE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ML-FIGURE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:ML-FIGURE"/>
  </xsd:complexType>
  <!-- element group for class Formula::MlFormula -->
  <xsd:group name="ML-FORMULA">
    <xsd:sequence>
      <xsd:element name="FORMULA-CAPTION" type="AR:CAPTION" minOccurs="0"/>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="ML-GRAPHIC" type="AR:ML-GRAPHIC"/>
      </xsd:choice>
      <xsd:element name="VERBATIM" type="AR:MULTI-LANGUAGE-VERBATIM" minOccurs="0"/>
      <xsd:element name="TEX-MATH" type="AR:TEX-MATH" minOccurs="0"/>
      <xsd:element name="C-CODE" type="AR:MULTI-LANGUAGE-PLAIN-TEXT" minOccurs="0"/>
      <xsd:element name="GENERIC-MATH" type="AR:MULTI-LANGUAGE-PLAIN-TEXT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Formula::MlFormula -->
  <xsd:attributeGroup name="ML-FORMULA">
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class Formula::MlFormula -->
  <xsd:complexType name="ML-FORMULA" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ML-FORMULA"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:ML-FORMULA"/>
  </xsd:complexType>
  <!-- element group for class Figure::MlGraphic -->
  <xsd:group name="ML-GRAPHIC">
    <xsd:sequence>
      <xsd:element name="GRAPHIC" type="AR:GRAPHIC" minOccurs="0"/>
      <xsd:element name="MAP" type="AR:MAP" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Figure::MlGraphic -->
  <xsd:complexType name="ML-GRAPHIC" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ML-GRAPHIC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:LANGUAGE-SPECIFIC"/>
  </xsd:complexType>
  <!-- element group for class ModeDeclaration::ModeDeclaration -->
  <xsd:group name="MODE-DECLARATION">
    <xsd:annotation>
      <xsd:documentation>Declaration of one Mode. The name and semantics of a special mode is not defined in the metamodel.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ModeDeclaration::ModeDeclaration -->
  <xsd:complexType name="MODE-DECLARATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Declaration of one Mode. The name and semantics of a special mode is not defined in the metamodel.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MODE-DECLARATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MODE-DECLARATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ModeDeclaration::ModeDeclarationGroup -->
  <xsd:group name="MODE-DECLARATION-GROUP">
    <xsd:annotation>
      <xsd:documentation>A collection of Mode Declarations.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INITIAL-MODE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODE-DECLARATION" type="AR:MODE-DECLARATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ModeDeclaration::ModeDeclarationGroup -->
  <xsd:complexType name="MODE-DECLARATION-GROUP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A collection of Mode Declarations.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:MODE-DECLARATION-GROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MODE-DECLARATION-GROUP--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MODE-DECLARATION-GROUP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ModeDeclaration::ModeDeclarationGroupPrototype -->
  <xsd:group name="MODE-DECLARATION-GROUP-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>The ModeDeclarationGroupPrototype specifies a set of Modes (ModeDeclarationGroup) which is provided or required in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TYPE-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ModeDeclaration::ModeDeclarationGroupPrototype -->
  <xsd:complexType name="MODE-DECLARATION-GROUP-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ModeDeclarationGroupPrototype specifies a set of Modes (ModeDeclarationGroup) which is provided or required in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:MODE-DECLARATION-GROUP-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MODE-DECLARATION-GROUP-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ModeDeclaration::ModeDeclarationGroupPrototypeMapping -->
  <xsd:group name="MODE-DECLARATION-GROUP-PROTOTYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named but otherwise compatible ModeDeclarationGroupPrototypes in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE-GROUP-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="MODE-GROUP-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ModeDeclaration::ModeDeclarationGroupPrototypeMapping -->
  <xsd:complexType name="MODE-DECLARATION-GROUP-PROTOTYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named but otherwise compatible ModeDeclarationGroupPrototypes in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MODE-DECLARATION-GROUP-PROTOTYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InstanceRefs::ModeInAtomicSoftwareComponentTypeInstanceRef -->
  <xsd:group name="MODE-IN-ATOMIC-SOFTWARE-COMPONENT-TYPE-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-MODE-DECLARATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-OPERATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::ModeInAtomicSoftwareComponentTypeInstanceRef -->
  <xsd:complexType name="MODE-IN-ATOMIC-SOFTWARE-COMPONENT-TYPE-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:MODE-IN-ATOMIC-SOFTWARE-COMPONENT-TYPE-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::ModeInterface -->
  <xsd:group name="MODE-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>A mode interface declares a ModeDeclarationGroupPrototype to be sent and received.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE-GROUP" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::ModeInterface -->
  <xsd:complexType name="MODE-INTERFACE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A mode interface declares a ModeDeclarationGroupPrototype to be sent and received.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:PORT-INTERFACE"/>
      <xsd:group ref="AR:MODE-INTERFACE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::ModeInterfaceMapping -->
  <xsd:group name="MODE-INTERFACE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named ModeDeclarationGroupPrototypes in context of two different ModeInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAPPING" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE-MAPPING" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::ModeInterfaceMapping -->
  <xsd:complexType name="MODE-INTERFACE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named ModeDeclarationGroupPrototypes in context of two different ModeInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:MODE-INTERFACE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::ModePortAnnotation -->
  <xsd:group name="MODE-PORT-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port used for calibration regarding a certain ModeDeclarationGroupPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE-GROUP-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::ModePortAnnotation -->
  <xsd:complexType name="MODE-PORT-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port used for calibration regarding a certain ModeDeclarationGroupPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:MODE-PORT-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ModeDeclarationGroup::ModeSwitchPoint -->
  <xsd:group name="MODE-SWITCH-POINT">
    <xsd:annotation>
      <xsd:documentation>A ModeSwitchPoint is required by a RunnableEntity owned a Mode Manager. Its semantics implies the ability to initiate a mode switch.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE-GROUP-IREF" type="AR:MODE-SWITCH-POINT--MODE-GROUP-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ModeDeclarationGroup::ModeSwitchPoint -->
  <xsd:complexType name="MODE-SWITCH-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A ModeSwitchPoint is required by a RunnableEntity owned a Mode Manager. Its semantics implies the ability to initiate a mode switch.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:MODE-SWITCH-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MODE-SWITCH-POINT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MODE-SWITCH-POINT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class _instanceRef::ModeSwitchPoint_modeGroup -->
  <xsd:group name="MODE-SWITCH-POINT--MODE-GROUP-IREF">
    <xsd:sequence>
      <xsd:element name="P-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:P-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::ModeSwitchPoint_modeGroup -->
  <xsd:complexType name="MODE-SWITCH-POINT--MODE-GROUP-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:MODE-SWITCH-POINT--MODE-GROUP-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::ModeSwitchReceiverComSpec -->
  <xsd:group name="MODE-SWITCH-RECEIVER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes of RPortPrototypes with respect to mode communication</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SUPPORTS-ASYNCHRONOUS-MODE-SWITCH" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute controls the behavior of the correspnding RPortPrototype with respect to the question whether it can deal with asynchronous mode switch requests, i.e. if set to true, the RPortPrototype is able to deal with an asynchronous mode switch request.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::ModeSwitchReceiverComSpec -->
  <xsd:complexType name="MODE-SWITCH-RECEIVER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes of RPortPrototypes with respect to mode communication</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MODE-SWITCH-RECEIVER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::ModeSwitchSenderComSpec -->
  <xsd:group name="MODE-SWITCH-SENDER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes of PPortPrototypes with respect to mode communication</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE-GROUP-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-SWITCHED-ACK" type="AR:MODE-SWITCHED-ACK-REQUEST" minOccurs="0"/>
      <xsd:element name="QUEUE-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of call queue on the server side. The queue is implemented by the RTE. The value must be greater or equal to 0. Setting the value of queueLength to 0 implies non-queued communication.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::ModeSwitchSenderComSpec -->
  <xsd:complexType name="MODE-SWITCH-SENDER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes of PPortPrototypes with respect to mode communication</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MODE-SWITCH-SENDER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::ModeSwitchedAckEvent -->
  <xsd:group name="MODE-SWITCHED-ACK-EVENT">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced mode have been received or an error occurs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-SWITCH-POINT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::ModeSwitchedAckEvent -->
  <xsd:complexType name="MODE-SWITCHED-ACK-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The event is raised when the referenced mode have been received or an error occurs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:MODE-SWITCHED-ACK-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Communication::ModeSwitchedAckRequest -->
  <xsd:group name="MODE-SWITCHED-ACK-REQUEST">
    <xsd:annotation>
      <xsd:documentation>Requests acknowledgements that a mode switch has been proceeded successfully</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of seconds before an error is reported or in case of allowed redundancy, the value is sent again.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::ModeSwitchedAckRequest -->
  <xsd:complexType name="MODE-SWITCHED-ACK-REQUEST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Requests acknowledgements that a mode switch has been proceeded successfully</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MODE-SWITCHED-ACK-REQUEST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AdminData::Modification -->
  <xsd:group name="MODIFICATION">
    <xsd:annotation>
      <xsd:documentation>Use &lt;modification&gt; to record what has changed in a document in comparison to its predecessor.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="MODIFICATION";msr.id="type__MODIFICATION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHANGE" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:element name="REASON" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AdminData::Modification -->
  <xsd:complexType name="MODIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;modification&gt; to record what has changed in a document in comparison to its predecessor.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="MODIFICATION";msr.id="type__MODIFICATION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MODIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::ModuleConfiguration -->
  <xsd:group name="MODULE-CONFIGURATION">
    <xsd:annotation>
      <xsd:documentation>Head of the configuration of one Module. A Module can be a BSW module as well as the RTE and ECU Infrastructure.

As part of tthe BSW module description, the ModuleConfiguration has two different roles:

The recommendedConfiguration contains parameter values recommended by the BSW module vendor. 

The preconfiguredConfiguration contains values for those parameters which are fixed by the implementation and cannot be changed.

These two ModuleConfigurations are used when the base ModuleConfiguration (as part of the base ECU configuration) is created to fill parameters with initial values.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFINITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODULE-DEF--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECUC-DEF-EDITION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the version info of the EcucParameter definition to which this values conform to. For the Definition of ECU Parameters the ADMIN-DATA shall be used to express the semantical changes.  The compatibility rules between the definitions and values revision labels is up to the module's vendor.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IMPLEMENTATION-CONFIG-VARIANT" type="AR:CONFIGURATION-VARIANT" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the ConfigurationVariant used for this ModuleConfiguration.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MODULE-DESCRIPTION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-IMPLEMENTATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTAINERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTAINER" type="AR:CONTAINER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::ModuleConfiguration -->
  <xsd:complexType name="MODULE-CONFIGURATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Head of the configuration of one Module. A Module can be a BSW module as well as the RTE and ECU Infrastructure.

As part of tthe BSW module description, the ModuleConfiguration has two different roles:

The recommendedConfiguration contains parameter values recommended by the BSW module vendor. 

The preconfiguredConfiguration contains values for those parameters which are fixed by the implementation and cannot be changed.

These two ModuleConfigurations are used when the base ModuleConfiguration (as part of the base ECU configuration) is created to fill parameters with initial values.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:MODULE-CONFIGURATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MODULE-CONFIGURATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MODULE-CONFIGURATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCParameterDefTemplate::ModuleDef -->
  <xsd:group name="MODULE-DEF">
    <xsd:annotation>
      <xsd:documentation>Used as the top-level element for configuration definition for Software Modules, including BSW and RTE as well as ECU Infrastructure.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="REFINED-MODULE-DEF-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODULE-DEF--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SUPPORTED-CONFIG-VARIANTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SUPPORTED-CONFIG-VARIANT" type="AR:CONFIGURATION-VARIANT" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>Specifies which ConfigurationVariants are supported by this software module.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTAINERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CHOICE-CONTAINER-DEF" type="AR:CHOICE-CONTAINER-DEF"/>
            <xsd:element name="PARAM-CONF-CONTAINER-DEF" type="AR:PARAM-CONF-CONTAINER-DEF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ModuleDef -->
  <xsd:complexType name="MODULE-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Used as the top-level element for configuration definition for Software Modules, including BSW and RTE as well as ECU Infrastructure.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:MODULE-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="MODULE-DEF--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MODULE-DEF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class MsrQuery::MsrChapterQuery -->
  <xsd:group name="MSR-CHAPTER-QUERY">
    <xsd:annotation>
      <xsd:documentation>This element contains a chapter generated through an external query or a chapter generated in an external program (in &lt;msrQueryResultChapter&gt;), as well as the data necessary to enable a conclusion to be drawn as to the origins of a chapter (in &lt;msrQueryProps&gt; ).</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MSR-QUERY-PROPS" type="AR:MSR-QUERY-PROPS" minOccurs="0"/>
      <xsd:element name="MSR-QUERY-RESULT-CHAPTER" type="AR:MSR-QUERY-RESULT-CHAPTER" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class MsrQuery::MsrChapterQuery -->
  <xsd:attributeGroup name="MSR-CHAPTER-QUERY">
    <xsd:annotation>
      <xsd:documentation>This element contains a chapter generated through an external query or a chapter generated in an external program (in &lt;msrQueryResultChapter&gt;), as well as the data necessary to enable a conclusion to be drawn as to the origins of a chapter (in &lt;msrQueryProps&gt; ).</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class MsrQuery::MsrChapterQuery -->
  <xsd:complexType name="MSR-CHAPTER-QUERY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element contains a chapter generated through an external query or a chapter generated in an external program (in &lt;msrQueryResultChapter&gt;), as well as the data necessary to enable a conclusion to be drawn as to the origins of a chapter (in &lt;msrQueryProps&gt; ).</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MSR-CHAPTER-QUERY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:MSR-CHAPTER-QUERY"/>
  </xsd:complexType>
  <!-- element group for class MsrQuery::MsrQueryArg -->
  <xsd:group name="MSR-QUERY-ARG">
    <xsd:annotation>
      <xsd:documentation>This element specifies an argument within a so-called MSR-QUERY which is named in the sister element &lt;msrQueryName&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-ARG_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="XREF" type="AR:XREF" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class MsrQuery::MsrQueryArg -->
  <xsd:complexType name="MSR-QUERY-ARG" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This element specifies an argument within a so-called MSR-QUERY which is named in the sister element &lt;msrQueryName&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-ARG_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MSR-QUERY-ARG"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class MsrQuery::MsrQueryP1 -->
  <xsd:group name="MSR-QUERY-P-1">
    <xsd:annotation>
      <xsd:documentation>This element contains the arguments &lt;msrQueryProps&gt;. In addition, it may also contain result elements in text form, embedded in &lt;msrQueryResultP1&gt;, which correspond to a MSR-QUERY , generated either by an external program or an external query, for the purpose of integrating the element into an MSRSW instance.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-P-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MSR-QUERY-PROPS" type="AR:MSR-QUERY-PROPS" minOccurs="0"/>
      <xsd:element name="MSR-QUERY-RESULT-P-1" type="AR:TOPIC-CONTENT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class MsrQuery::MsrQueryP1 -->
  <xsd:attributeGroup name="MSR-QUERY-P-1">
    <xsd:annotation>
      <xsd:documentation>This element contains the arguments &lt;msrQueryProps&gt;. In addition, it may also contain result elements in text form, embedded in &lt;msrQueryResultP1&gt;, which correspond to a MSR-QUERY , generated either by an external program or an external query, for the purpose of integrating the element into an MSRSW instance.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-P-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class MsrQuery::MsrQueryP1 -->
  <xsd:complexType name="MSR-QUERY-P-1" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element contains the arguments &lt;msrQueryProps&gt;. In addition, it may also contain result elements in text form, embedded in &lt;msrQueryResultP1&gt;, which correspond to a MSR-QUERY , generated either by an external program or an external query, for the purpose of integrating the element into an MSRSW instance.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-P-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MSR-QUERY-P-1"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:MSR-QUERY-P-1"/>
  </xsd:complexType>
  <!-- element group for class MsrQuery::MsrQueryProps -->
  <xsd:group name="MSR-QUERY-PROPS">
    <xsd:annotation>
      <xsd:documentation>This element specifies the characteristics and arguments of a MSR-QUERY, that is, the name &lt;msrQueryName&gt;, the arguments &lt;msrQueryArg&gt; and if required, the comment &lt;comment&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-PROPS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MSR-QUERY-NAME" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies the name of the MSR-QUERY triggered.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="MSR-QUERY-PROPS_TYPE__MSR-QUERY-NAME";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MSR-QUERY-ARG" type="AR:MSR-QUERY-ARG" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="COMMENT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element contains a commentary in text form.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="MSR-QUERY-PROPS_TYPE__COMMENT";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MsrQuery::MsrQueryProps -->
  <xsd:complexType name="MSR-QUERY-PROPS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies the characteristics and arguments of a MSR-QUERY, that is, the name &lt;msrQueryName&gt;, the arguments &lt;msrQueryArg&gt; and if required, the comment &lt;comment&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-PROPS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MSR-QUERY-PROPS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class MsrQuery::MsrQueryResultChapter -->
  <xsd:group name="MSR-QUERY-RESULT-CHAPTER">
    <xsd:annotation>
      <xsd:documentation>This element contains the result chapter of a MSR-QUERY , which was generated by an external program or an external query, so that it could be integrated into an MSRSW instance.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-RESULT-CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHAPTER" type="AR:CHAPTER" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MsrQuery::MsrQueryResultChapter -->
  <xsd:complexType name="MSR-QUERY-RESULT-CHAPTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element contains the result chapter of a MSR-QUERY , which was generated by an external program or an external query, so that it could be integrated into an MSRSW instance.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-RESULT-CHAPTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MSR-QUERY-RESULT-CHAPTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class MsrQuery::MsrQueryResultTopic1 -->
  <xsd:group name="MSR-QUERY-RESULT-TOPIC-1">
    <xsd:annotation>
      <xsd:documentation>This element contains the result of a &lt;topic1&gt; element generated from an external MSR-QUERY .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-RESULT-TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TOPIC-1" type="AR:TOPIC-1" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MsrQuery::MsrQueryResultTopic1 -->
  <xsd:complexType name="MSR-QUERY-RESULT-TOPIC-1" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element contains the result of a &lt;topic1&gt; element generated from an external MSR-QUERY .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-RESULT-TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MSR-QUERY-RESULT-TOPIC-1"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class MsrQuery::MsrQueryTopic1 -->
  <xsd:group name="MSR-QUERY-TOPIC-1">
    <xsd:annotation>
      <xsd:documentation>This element contains a generated TOPIC-1 element with a result in &lt;msrQueryResultTopic1&gt;. This is from an external MSR-QUERY which is defined more accurately in &lt;msrQueryProps&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MSR-QUERY-PROPS" type="AR:MSR-QUERY-PROPS" minOccurs="0"/>
      <xsd:element name="MSR-QUERY-RESULT-TOPIC-1" type="AR:MSR-QUERY-RESULT-TOPIC-1" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class MsrQuery::MsrQueryTopic1 -->
  <xsd:attributeGroup name="MSR-QUERY-TOPIC-1">
    <xsd:annotation>
      <xsd:documentation>This element contains a generated TOPIC-1 element with a result in &lt;msrQueryResultTopic1&gt;. This is from an external MSR-QUERY which is defined more accurately in &lt;msrQueryProps&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class MsrQuery::MsrQueryTopic1 -->
  <xsd:complexType name="MSR-QUERY-TOPIC-1" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element contains a generated TOPIC-1 element with a result in &lt;msrQueryResultTopic1&gt;. This is from an external MSR-QUERY which is defined more accurately in &lt;msrQueryProps&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__MSR-QUERY-TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MSR-QUERY-TOPIC-1"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:MSR-QUERY-TOPIC-1"/>
  </xsd:complexType>
  <!-- element group for class MultilanguageData::MultiLanguageOverviewParagraph -->
  <xsd:group name="MULTI-LANGUAGE-OVERVIEW-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageOverviewParagraph

This is the content of a multilingual paragraph in an overview item.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-2"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="L-2" type="AR:L-OVERVIEW-PARAGRAPH" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MultilanguageData::MultiLanguageOverviewParagraph -->
  <xsd:complexType name="MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageOverviewParagraph

This is the content of a multilingual paragraph in an overview item.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-2"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class MultilanguageData::MultiLanguageParagraph -->
  <xsd:group name="MULTI-LANGUAGE-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageParagraph

This is the content model of a multilinugal paragraph in a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-1"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="L-1" type="AR:L-PARAGRAPH" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class MultilanguageData::MultiLanguageParagraph -->
  <xsd:attributeGroup name="MULTI-LANGUAGE-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageParagraph

This is the content model of a multilinugal paragraph in a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-1"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class MultilanguageData::MultiLanguageParagraph -->
  <xsd:complexType name="MULTI-LANGUAGE-PARAGRAPH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageParagraph

This is the content model of a multilinugal paragraph in a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-1"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTI-LANGUAGE-PARAGRAPH"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:MULTI-LANGUAGE-PARAGRAPH"/>
  </xsd:complexType>
  <!-- element group for class MultilanguageData::MultiLanguagePlainText -->
  <xsd:group name="MULTI-LANGUAGE-PLAIN-TEXT">
    <xsd:annotation>
      <xsd:documentation>This is a multilingual plaint Text.It is intended to be rendered as a paragraph.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-10"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="L-10" type="AR:L-PLAIN-TEXT" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MultilanguageData::MultiLanguagePlainText -->
  <xsd:complexType name="MULTI-LANGUAGE-PLAIN-TEXT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is a multilingual plaint Text.It is intended to be rendered as a paragraph.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-10"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTI-LANGUAGE-PLAIN-TEXT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class MultilanguageData::MultiLanguageVerbatim -->
  <xsd:group name="MULTI-LANGUAGE-VERBATIM">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageVerbatim

This class represents multilingual Verbatim. Verbatim means, that whitespace is maintained. When Verbatim is rendered in PDF or Online media, whitespace is obeyed.Blanks are rendered as well as newline characters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-5"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="L-5" type="AR:L-VERBATIM" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class MultilanguageData::MultiLanguageVerbatim -->
  <xsd:attributeGroup name="MULTI-LANGUAGE-VERBATIM">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageVerbatim

This class represents multilingual Verbatim. Verbatim means, that whitespace is maintained. When Verbatim is rendered in PDF or Online media, whitespace is obeyed.Blanks are rendered as well as newline characters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-5"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="ALLOW-BREAK" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>This indicates if the verbatim text might be split on multiple pages. Default is "1".</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="ml-data-5__ml-data-5__ALLOW-BREAK";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="FLOAT" type="AR:FLOAT-ENUM"/>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
    <xsd:attribute name="PGWIDE" type="AR:PGWIDE-ENUM"/>
    <xsd:attribute name="XMLSPACE" type="AR:XMLSPACE-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class MultilanguageData::MultiLanguageVerbatim -->
  <xsd:complexType name="MULTI-LANGUAGE-VERBATIM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>MultiLanguageVerbatim

This class represents multilingual Verbatim. Verbatim means, that whitespace is maintained. When Verbatim is rendered in PDF or Online media, whitespace is obeyed.Blanks are rendered as well as newline characters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-5"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTI-LANGUAGE-VERBATIM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:MULTI-LANGUAGE-VERBATIM"/>
  </xsd:complexType>
  <!-- element group for class MultilanguageData::MultilanguageLongName -->
  <xsd:group name="MULTILANGUAGE-LONG-NAME">
    <xsd:annotation>
      <xsd:documentation>This is a longName in multilingual version.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-4"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="L-4" type="AR:L-LONG-NAME" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class MultilanguageData::MultilanguageLongName -->
  <xsd:complexType name="MULTILANGUAGE-LONG-NAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is a longName in multilingual version.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ml-data-4"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTILANGUAGE-LONG-NAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::MultilineStringParamDef -->
  <xsd:group name="MULTILINE-STRING-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for multiline Strings (including "carriage return").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::MultilineStringParamDef -->
  <xsd:complexType name="MULTILINE-STRING-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for multiline Strings (including "carriage return").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:STRING-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::MultiplexedIPdu -->
  <xsd:group name="MULTIPLEXED-I-PDU">
    <xsd:annotation>
      <xsd:documentation>A MultiplexedPdu (i.e. NOT a COM I-PDU) contains a DynamicPart, an optional StaticPart and a selectorField. In case of multiplexing this IPdu is routed between the Pdu Multiplexer and the Interface Layer.

A multiplexer is used to define variable parts within an IPdu that may carry different signals. The receivers of such a IPdu can determine which signalPdus are transmitted by evaluating the selector field, which carries a unique selector code for each sub-part.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DYNAMIC-PART" type="AR:DYNAMIC-PART" minOccurs="0"/>
      <xsd:element name="SELECTOR-FIELD-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The size in bits of the selector field shall be configurable in a range of 0-2031 bits.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SELECTOR-FIELD-START-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter is necessary to describe the position of the selector field within the IPdu.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STATIC-PART" type="AR:STATIC-PART" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::MultiplexedIPdu -->
  <xsd:complexType name="MULTIPLEXED-I-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A MultiplexedPdu (i.e. NOT a COM I-PDU) contains a DynamicPart, an optional StaticPart and a selectorField. In case of multiplexing this IPdu is routed between the Pdu Multiplexer and the Interface Layer.

A multiplexer is used to define variable parts within an IPdu that may carry different signals. The receivers of such a IPdu can determine which signalPdus are transmitted by evaluating the selector field, which carries a unique selector code for each sub-part.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-PDU"/>
      <xsd:group ref="AR:MULTIPLEXED-I-PDU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::MultiplexedPart -->
  <xsd:group name="MULTIPLEXED-PART">
    <xsd:annotation>
      <xsd:documentation>The StaticPart and the DynamicPartAlternative have common properties. Both can be separated in multiple segments within the multiplexed PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SEGMENT-POSITIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SEGMENT-POSITION" type="AR:SEGMENT-POSITION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class CoreCommunication::NPdu -->
  <xsd:group name="N-PDU">
    <xsd:annotation>
      <xsd:documentation>This is a PDU of the Transport Layer.
The main purpose of the TP Layer is to segment and reassemble I-PDUs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="N-PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="N-PDU"/>
      <xsd:enumeration value="DATA-N-PDU"/>
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
      <!-- Start Daimler addition 4.0.0.DAI.0 -->
      <!-- End Daimler addition 4.0.0.DAI.0 -->
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class NetworkManagement::NmCluster -->
  <xsd:group name="NM-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>Set of NM nodes coordinated with use of the NM algorithm.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-CLUSTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CLUSTER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-MESSAGE-TIMEOUT-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Timeout of a NM message in seconds. It determines how long the NM shall wait with notification of transmission failure while communication errors occur on the bus.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NODES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-NM-NODE" type="AR:CAN-NM-NODE"/>
            <xsd:element name="FLEXRAY-NM-NODE" type="AR:FLEXRAY-NM-NODE"/>
            <xsd:element name="UDP-NM-NODE" type="AR:UDP-NM-NODE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-PDU-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the length of the NM PDU (in bytes).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-REMOTE-SLEEP-INDICATION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Timeout for Remote Sleep Indication in seconds. It defines the time how long it shall take to recognize that all other nodes are ready to sleep.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-REPEAT-MESSAGE-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Timeout for Repeat Message State in seconds. Defines the time how long the NM shall stay in the Repeat Message State.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class NetworkManagement::NmClusterCoupling -->
  <xsd:group name="NM-CLUSTER-COUPLING">
    <xsd:annotation>
      <xsd:documentation>Attributes that are valid for each of the referenced (coupled) clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class NetworkManagement::NmConfig -->
  <xsd:group name="NM-CONFIG">
    <xsd:annotation>
      <xsd:documentation>Contains the all configuration elements for AUTOSAR Nm.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-CLUSTERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-NM-CLUSTER" type="AR:CAN-NM-CLUSTER"/>
            <xsd:element name="FLEXRAY-NM-CLUSTER" type="AR:FLEXRAY-NM-CLUSTER"/>
            <xsd:element name="UDP-NM-CLUSTER" type="AR:UDP-NM-CLUSTER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-CLUSTER-COUPLINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-NM-CLUSTER-COUPLING" type="AR:CAN-NM-CLUSTER-COUPLING"/>
            <xsd:element name="FLEXRAY-NM-CLUSTER-COUPLING" type="AR:FLEXRAY-NM-CLUSTER-COUPLING"/>
            <xsd:element name="UDP-NM-CLUSTER-COUPLING" type="AR:UDP-NM-CLUSTER-COUPLING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-IF-ECUS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="NM-ECU" type="AR:NM-ECU"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::NmConfig -->
  <xsd:complexType name="NM-CONFIG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Contains the all configuration elements for AUTOSAR Nm.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-CONFIG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::NmCoordinator -->
  <xsd:group name="NM-COORDINATOR">
    <xsd:annotation>
      <xsd:documentation>A NM coordinator is an ECU, which is connected to at least two busses, and where the requirement exists that shutdown of NM of at least two of these busses (also referred to as coordinated busses) has to be performed synchronously.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-AUTOSAR-GATEWAY-ROUNDS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of rounds the coordinator shall keep a bus which runs AUTOSAR NM awake after all nodes including itself are ready to sleep.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NODE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="NM-NODE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:NM-NODE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-OSEK-GATEWAY-ROUNDS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of rounds the coordinator shall keep a bus which runs OSEK NM awake after all nodes including itself are ready to sleep.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-OSEK-SUPPORT-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switch to inform if NM coordinator needs to support direct OSEK NM.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::NmCoordinator -->
  <xsd:complexType name="NM-COORDINATOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A NM coordinator is an ECU, which is connected to at least two busses, and where the requirement exists that shutdown of NM of at least two of these busses (also referred to as coordinated busses) has to be performed synchronously.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:NM-COORDINATOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::NmEcu -->
  <xsd:group name="NM-ECU">
    <xsd:annotation>
      <xsd:documentation>ECU on which NM is running.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BUS-SPECIFIC-NM-ECU" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="CAN-NM-ECU" type="AR:CAN-NM-ECU"/>
            <xsd:element name="FLEXRAY-NM-ECU" type="AR:FLEXRAY-NM-ECU"/>
            <xsd:element name="UDP-NM-ECU" type="AR:UDP-NM-ECU"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-INSTANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-BUS-SYNCHRONIZATION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables bus synchronization support.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-COM-CONTROL-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the Communication Control support.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-COORDINATOR" type="AR:NM-COORDINATOR" minOccurs="0"/>
      <xsd:element name="NM-CYCLETIME-MAIN-FUNCTION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The period between successive calls to the Main Function of the NM Interface in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-MULTIPLE-CHANNELS-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables channel multiplicity support.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NODE-DETECTION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the Request Repeat Message Request support. Only valid if nmNodeIdEnabled is set to true.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NODE-ID-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the source node identifier.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-PASSIVE-MODE-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables support of the Passive Mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-PDU-RX-INDICATION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switch for enabling the PDU Rx Indication.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-REMOTE-SLEEP-IND-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switch for enabling remote sleep indication support.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-STATE-CHANGE-IND-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the CAN Network Management state change notification.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-USER-DATA-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Switch for enabling user data support.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::NmEcu -->
  <xsd:complexType name="NM-ECU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>ECU on which NM is running.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-ECU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="NM-ECU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NM-ECU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class NetworkManagement::NmNode -->
  <xsd:group name="NM-NODE">
    <xsd:annotation>
      <xsd:documentation>The linking of NmEcus to NmClusters is realized via the NmNodes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONTROLLER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMMUNICATION-CONTROLLER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-IF-ECU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:NM-ECU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-INSTANCE-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The NM instance identifier is used for reporting of development errors to DET. It must be unique for each NM instance within one ECU.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RX-NM-PDU-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RX-NM-PDU-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:NM-PDU--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TX-NM-PDU-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TX-NM-PDU-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:NM-PDU--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="NM-NODE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAN-NM-NODE"/>
      <xsd:enumeration value="FLEXRAY-NM-NODE"/>
      <xsd:enumeration value="UDP-NM-NODE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::NmPdu -->
  <xsd:group name="NM-PDU">
    <xsd:annotation>
      <xsd:documentation>Network Management I-Pdu</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-DATA-INFORMATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the PDU contains NM Data.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-VOTE-INFORMATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the PDU contains NM Vote information.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::NmPdu -->
  <xsd:complexType name="NM-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Network Management I-Pdu</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-PDU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="NM-PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NM-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Note::Note -->
  <xsd:group name="NOTE">
    <xsd:annotation>
      <xsd:documentation>This represents a note in a documentation, which may be used to hilight specific issues such as hints or caution notes.

note that Dcoumentation notes can be nested recursively, even if this is not really intended. In case of nested notes e.g. the note icon of inner notes might be omitted while rendering the note.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NOTE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LABEL" type="AR:MULTILANGUAGE-LONG-NAME" minOccurs="0"/>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:group ref="AR:DOCUMENTATION-BLOCK"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Note::Note -->
  <xsd:attributeGroup name="NOTE">
    <xsd:annotation>
      <xsd:documentation>This represents a note in a documentation, which may be used to hilight specific issues such as hints or caution notes.

note that Dcoumentation notes can be nested recursively, even if this is not really intended. In case of nested notes e.g. the note icon of inner notes might be omitted while rendering the note.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NOTE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
    <xsd:attribute name="NOTE-TYPE" type="AR:NOTE-TYPE-ENUM">
      <xsd:annotation>
        <xsd:documentation>Type of the Note. Dafault is "HINT"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="HINT";msr.id="NOTE_TYPE__NOTE_TYPE__NOTE-TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class Note::Note -->
  <xsd:complexType name="NOTE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This represents a note in a documentation, which may be used to hilight specific issues such as hints or caution notes.

note that Dcoumentation notes can be nested recursively, even if this is not really intended. In case of nested notes e.g. the note icon of inner notes might be omitted while rendering the note.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NOTE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:NOTE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:NOTE"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::NumericalParameterValue -->
  <xsd:group name="NUMERICAL-PARAMETER-VALUE">
    <xsd:annotation>
      <xsd:documentation>Holding the value which is subject to variant handling.</xsd:documentation>
      <xsd:appinfo source="tags">Vh.latestBindingTime="PreCompileTime"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" type="AR:NUMERICAL-VALUE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value which is subject to variant handling.

atpVariation: [ECUC00080]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::NumericalParameterValue -->
  <xsd:complexType name="NUMERICAL-PARAMETER-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Holding the value which is subject to variant handling.</xsd:documentation>
      <xsd:appinfo source="tags">Vh.latestBindingTime="PreCompileTime"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PARAMETER-VALUE"/>
      <xsd:group ref="AR:NUMERICAL-PARAMETER-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::NvBlockComponentType -->
  <xsd:group name="NV-BLOCK-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>The NvBlockComponentType defines non volatile data which data can be shared between ComponentPrototypes. The non volatile data of the NvBlockComponentType are accessible via provided and required ports.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Components::NvBlockComponentType -->
  <xsd:complexType name="NV-BLOCK-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The NvBlockComponentType defines non volatile data which data can be shared between ComponentPrototypes. The non volatile data of the NvBlockComponentType are accessible via provided and required ports.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="NV-BLOCK-COMPONENT-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class NvBlockComponent::NvBlockDataMapping -->
  <xsd:group name="NV-BLOCK-DATA-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping between the VariableDataPrototypes in the NvBlockComponents ports and the VariableDataPrototypes of the RAM Block.

The data types of the referenced VariableDataPrototypes in the ports and the referenced sub-element (inside a CompositDataType) of the VariableDataPrototype representing the RAM Block shall be compatible.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NV-RAM-BLOCK-ELEMENT" type="AR:VARIABLE-ACCESS" minOccurs="0"/>
      <xsd:element name="READ-NV-DATA" type="AR:VARIABLE-ACCESS" minOccurs="0"/>
      <xsd:element name="WRITTEN-NV-DATA" type="AR:VARIABLE-ACCESS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NvBlockComponent::NvBlockDataMapping -->
  <xsd:complexType name="NV-BLOCK-DATA-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping between the VariableDataPrototypes in the NvBlockComponents ports and the VariableDataPrototypes of the RAM Block.

The data types of the referenced VariableDataPrototypes in the ports and the referenced sub-element (inside a CompositDataType) of the VariableDataPrototype representing the RAM Block shall be compatible.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:NV-BLOCK-DATA-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NvBlockComponent::NvBlockDescriptor -->
  <xsd:group name="NV-BLOCK-DESCRIPTOR">
    <xsd:annotation>
      <xsd:documentation>Specifies the properties of exactly on NvBlock.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CLIENT-SERVER-PORTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ROLE-BASED-PORT-ASSIGNMENT" type="AR:ROLE-BASED-PORT-ASSIGNMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INSTANTIATION-DATA-DEF-PROPSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INSTANTIATION-DATA-DEF-PROPS" type="AR:INSTANTIATION-DATA-DEF-PROPS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NV-BLOCK-COMPONENT-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:NV-BLOCK-COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NV-BLOCK-DATA-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="NV-BLOCK-DATA-MAPPING" type="AR:NV-BLOCK-DATA-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NV-BLOCK-NEEDS" type="AR:NV-BLOCK-NEEDS" minOccurs="0"/>
      <xsd:element name="RAM-BLOCK" type="AR:VARIABLE-DATA-PROTOTYPE" minOccurs="0"/>
      <xsd:element name="ROM-BLOCK" type="AR:PARAMETER-DATA-PROTOTYPE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NvBlockComponent::NvBlockDescriptor -->
  <xsd:complexType name="NV-BLOCK-DESCRIPTOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the properties of exactly on NvBlock.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NV-BLOCK-DESCRIPTOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::NvBlockNeeds -->
  <xsd:group name="NV-BLOCK-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of a single Nv block.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="N-DATA-SETS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>number of data sets to be provided by the NVRAM manager for this block</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="READONLY" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>true: data of this block are write protected for normal operation (but protection can be disabled)
false: no restriction</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RELIABILITY" type="AR:NV-BLOCK-NEEDS-RELIABILITY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Reliability against data loss on the non-volatile medium.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESISTANT-TO-CHANGED-SW" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines whether an Nv block shall be treated resistant to configuration changes (true) or not (false). For details how to handle initialization in the latter case, refer to the NVRAM specification.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESTORE-AT-START" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines whether the associated RAM mirror block shall be implictly restored during startup by the basic SW or not. Only relevant if a RAM mirror block is associated with this port (for Software Components the latter is modeled via SwcServiceDependency).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WRITE-ONLY-ONCE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines write protection after first write:
true: This block is prevented from being changed/erased or being replaced with the default ROM data after first initialization by the SWC.
false: No such restriction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WRITING-FREQUENCY" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Provides the amount of updates to this block from the application point of view. It has to be provided in "number of write access per year".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WRITING-PRIORITY" type="AR:NV-BLOCK-NEEDS-WRITING-PRIORITY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Requires the priority of writing this block in case of concurrent requests to write other blocks.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::NvBlockNeeds -->
  <xsd:complexType name="NV-BLOCK-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of a single Nv block.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NV-BLOCK-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::NvDataInterface -->
  <xsd:group name="NV-DATA-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>A non volatile data interface declares a number of VariableDataPrototypes to be exchanged between non volatile block components and atomic software components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NV-DATAS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE" type="AR:VARIABLE-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::NvDataInterface -->
  <xsd:complexType name="NV-DATA-INTERFACE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A non volatile data interface declares a number of VariableDataPrototypes to be exchanged between non volatile block components and atomic software components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:PORT-INTERFACE"/>
      <xsd:group ref="AR:NV-DATA-INTERFACE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::NvDataPortAnnotation -->
  <xsd:group name="NV-DATA-PORT-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port regarding a certain VariableDataPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VARIABLE-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::NvDataPortAnnotation -->
  <xsd:complexType name="NV-DATA-PORT-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port regarding a certain VariableDataPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:NV-DATA-PORT-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class OasisExchangeTable::OasisExchangeTable -->
  <xsd:group name="OASIS-EXCHANGE-TABLE">
    <xsd:annotation>
      <xsd:documentation>This class implements an exchange table according to OASIS Technical Resolution TR 9503:1995.

http://www.oasis-open.org/specs/a503.htm</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TABLE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TABLE-CAPTION" type="AR:CAPTION" minOccurs="0"/>
      <xsd:element name="TGROUP" type="AR:TGROUP" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class OasisExchangeTable::OasisExchangeTable -->
  <xsd:attributeGroup name="OASIS-EXCHANGE-TABLE">
    <xsd:annotation>
      <xsd:documentation>This class implements an exchange table according to OASIS Technical Resolution TR 9503:1995.

http://www.oasis-open.org/specs/a503.htm</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TABLE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="COLSEP" type="xsd:string"/>
    <xsd:attribute name="FRAME" type="AR:FRAME-ENUM"/>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
    <xsd:attribute name="ORIENT" type="AR:ORIENT-ENUM"/>
    <xsd:attribute name="PGWIDE" type="xsd:string"/>
    <xsd:attribute name="ROWSEP" type="xsd:string"/>
    <xsd:attribute name="TABSTYLE" type="xsd:string"/>
  </xsd:attributeGroup>
  <!-- complex type for class OasisExchangeTable::OasisExchangeTable -->
  <xsd:complexType name="OASIS-EXCHANGE-TABLE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class implements an exchange table according to OASIS Technical Resolution TR 9503:1995.

http://www.oasis-open.org/specs/a503.htm</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TABLE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:OASIS-EXCHANGE-TABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:OASIS-EXCHANGE-TABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ObdControlServiceNeeds -->
  <xsd:group name="OBD-CONTROL-SERVICE-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Service 08 (request control of on-board system) in relation to a particular test-Identifier (TID) supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TEST-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Test Identifier (TID) according to ISO 15031-5.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ObdControlServiceNeeds -->
  <xsd:complexType name="OBD-CONTROL-SERVICE-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Service 08 (request control of on-board system) in relation to a particular test-Identifier (TID) supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:OBD-CONTROL-SERVICE-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ObdInfoServiceNeeds -->
  <xsd:group name="OBD-INFO-SERVICE-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a given InfoType (OBD Service 09), which is supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of date (in bytes) provided for this InfoType.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INFO-TYPE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The InfoType according to ISO 15031-5</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ObdInfoServiceNeeds -->
  <xsd:complexType name="OBD-INFO-SERVICE-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a given InfoType (OBD Service 09), which is supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:OBD-INFO-SERVICE-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ObdMonitorServiceNeeds -->
  <xsd:group name="OBD-MONITOR-SERVICE-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a particular on-board monitoring test supported by this component or module. (OBD Service 06).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ON-BOARD-MONITOR-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>On-board monitor ID according to ISO 15031-5.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TEST-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Test Identifier (TID) according to ISO 15031-5.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UNIT-AND-SCALING-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Unit and scaling ID according to ISO 15031-5.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ObdMonitorServiceNeeds -->
  <xsd:complexType name="OBD-MONITOR-SERVICE-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a particular on-board monitoring test supported by this component or module. (OBD Service 06).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:OBD-MONITOR-SERVICE-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ObdPidServiceNeeds -->
  <xsd:group name="OBD-PID-SERVICE-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a particular PID (parameter identifier), which is supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of data (in bytes) provided for this particular PID.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PARAMETER-ID" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Standardized parameter identifier (PID) according to the OBD standard specified in attribute "standard".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STANDARD" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Annotates the standard according to which the PID is given, e.g. "ISO15031-5" or "SAE J1979 Rev May 2007".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ObdPidServiceNeeds -->
  <xsd:complexType name="OBD-PID-SERVICE-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a particular PID (parameter identifier), which is supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:OBD-PID-SERVICE-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ObdRatioServiceNeeds -->
  <xsd:group name="OBD-RATIO-SERVICE-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a particular "ratio monitoring", which is supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTION-TYPE" type="AR:OBD-RATIO-CONNECTION-KIND" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines how the DEM is connected to the component or module to perform the IUMPR service.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IUMPR-GROUP" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the IUMPR Group of the SAE standard. Note that possible values are not predefined by an enumeration meta-type in oder to make the meta-model independent of the details of the SAE standard. Possible values are currently (AUTOSAR R3.1):
CAT1 CAT2 OXS1 OXS2 EGR SAIR EVAP SECOXS1 SECOXS2 NMHCCAT NOXCAT NOXADSORB PMFILTER EGSENSOR BOOSTPRS NOGROUP NONE.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RATE-BASED-MONITORED-EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DIAGNOSTIC-EVENT-NEEDS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="USED-FID-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FUNCTION-INHIBITION-NEEDS--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ObdRatioServiceNeeds -->
  <xsd:complexType name="OBD-RATIO-SERVICE-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs of a compoment or module on the configuration of OBD Services in relation to a particular "ratio monitoring", which is supported by this component or module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:OBD-RATIO-SERVICE-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class InstanceRefs::OperationInAtomicSoftwareComponentTypeInstanceRef -->
  <xsd:group name="OPERATION-IN-ATOMIC-SOFTWARE-COMPONENT-TYPE-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-OPERATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::OperationInAtomicSoftwareComponentTypeInstanceRef -->
  <xsd:complexType name="OPERATION-IN-ATOMIC-SOFTWARE-COMPONENT-TYPE-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:OPERATION-IN-ATOMIC-SOFTWARE-COMPONENT-TYPE-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InstanceRefs::OperationInSystemInstanceRef -->
  <xsd:group name="OPERATION-IN-SYSTEM-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-COMPONENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTEXT-COMPONENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-COMPOSITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SOFTWARE-COMPOSITION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-OPERATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::OperationInSystemInstanceRef -->
  <xsd:complexType name="OPERATION-IN-SYSTEM-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:OPERATION-IN-SYSTEM-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InputOutputLatencyConstraint::OperationInputLatencyConstraint -->
  <xsd:group name="OPERATION-INPUT-LATENCY-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the input latency of data received by an application component via client-server communication. Thereby, the input latency is defined as the time latency between the point in time where the data is generated by a physical sensor or other hardware I/O and the point in time where it is available for the application component, that is referenced by the associated timing event.

The timing event in the scope of this constraint must be of type operationCallResponseReceived.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TD-EVENT-OPERATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InputOutputLatencyConstraint::OperationInputLatencyConstraint -->
  <xsd:complexType name="OPERATION-INPUT-LATENCY-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the input latency of data received by an application component via client-server communication. Thereby, the input latency is defined as the time latency between the point in time where the data is generated by a physical sensor or other hardware I/O and the point in time where it is available for the application component, that is referenced by the associated timing event.

The timing event in the scope of this constraint must be of type operationCallResponseReceived.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:INPUT-OUTPUT-LATENCY-CONSTRAINT"/>
      <xsd:group ref="AR:OPERATION-INPUT-LATENCY-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::OperationInvokedEvent -->
  <xsd:group name="OPERATION-INVOKED-EVENT">
    <xsd:annotation>
      <xsd:documentation>The OperationInvokedEvent references the OperationPrototype invoked by the client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATION-IREF" type="AR:OPERATION-INVOKED-EVENT--OPERATION-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::OperationInvokedEvent -->
  <xsd:complexType name="OPERATION-INVOKED-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The OperationInvokedEvent references the OperationPrototype invoked by the client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:OPERATION-INVOKED-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::OperationInvokedEvent_operation -->
  <xsd:group name="OPERATION-INVOKED-EVENT--OPERATION-IREF">
    <xsd:sequence>
      <xsd:element name="P-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:P-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="OPERATION-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::OperationInvokedEvent_operation -->
  <xsd:complexType name="OPERATION-INVOKED-EVENT--OPERATION-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:OPERATION-INVOKED-EVENT--OPERATION-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InputOutputLatencyConstraint::OperationOutputLatencyConstraint -->
  <xsd:group name="OPERATION-OUTPUT-LATENCY-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the output latency of data sent by an application component via client-server communication. Thereby, the output latency is defined as the time latency between the point in time where the data is sent by the application component, that is referenced by the associated timing event, and the point in time where it is consumed by a physical actuator or other hardware I/O.

The timing event in the scope of this constraint must be of type operationCalled.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TD-EVENT-OPERATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InputOutputLatencyConstraint::OperationOutputLatencyConstraint -->
  <xsd:complexType name="OPERATION-OUTPUT-LATENCY-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This constraint is used at VFB level to implicitly restrict the output latency of data sent by an application component via client-server communication. Thereby, the output latency is defined as the time latency between the point in time where the data is sent by the application component, that is referenced by the associated timing event, and the point in time where it is consumed by a physical actuator or other hardware I/O.

The timing event in the scope of this constraint must be of type operationCalled.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:INPUT-OUTPUT-LATENCY-CONSTRAINT"/>
      <xsd:group ref="AR:OPERATION-OUTPUT-LATENCY-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::OperationPrototype -->
  <xsd:group name="OPERATION-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>An operation declared within the scope of a client/server interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARGUMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ARGUMENT-DATA-PROTOTYPE" type="AR:ARGUMENT-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="POSSIBLE-ERROR-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="POSSIBLE-ERROR-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:APPLICATION-ERROR--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::OperationPrototype -->
  <xsd:complexType name="OPERATION-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An operation declared within the scope of a client/server interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:OPERATION-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="OPERATION-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="OPERATION-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class PortInterface::OperationPrototypeMapping -->
  <xsd:group name="OPERATION-PROTOTYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named OperationPrototypes in context of two different ClientServerInterfaces</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATION-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="OPERATION-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::OperationPrototypeMapping -->
  <xsd:complexType name="OPERATION-PROTOTYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named OperationPrototypes in context of two different ClientServerInterfaces</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:OPERATION-PROTOTYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::Oscillator -->
  <xsd:group name="OSCILLATOR">
    <xsd:annotation>
      <xsd:documentation>The basic source for time in the ECU. Based on the oscillator the PU clock is generated, but also the communication and other peripherals need timing information (ADC, PWM, timer).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ADJUSTIBLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the oscillator is adjustable from software.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BACKUP-OSCILLATOR" type="AR:OSCILLATOR" minOccurs="0"/>
      <xsd:element name="OSCILLATOR-FREQUENCY-RANGE" type="AR:FREQUENCY-RANGE" minOccurs="0"/>
      <xsd:element name="OSCILLATOR-JITTER" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The short-term deviation of the nominal frequency to the real frequency. Jitter is influenced by the circuitry itself, voltage spikes etc. Jitter is critical for communication elements.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OSCILLATOR-MODE" type="AR:OSCILLATOR-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Crystals and other oscillating elements have more than one resonant frequencies, which are usually odd harmonics to the basic, fundamental frequencies. For Automotive a basic requirement should be to use only fundamental mode only. Using overtone modes there is a risk, that the oscillator circuitry starts at the fundamental mode after a error in the start up routine. In order to reach an overtone mode the frequency of the fundamental mode, or lower overtones has to be passed during start up. There is a risk that the oscillator locks to this, lower frequency. Therefore Fundamental modes oscillatorts are not so critical for this issue. Fundamental quartz/crystals can reach up to 40 MHz today, above this frequency all quartz/crystals are running in the 3rd, 5th or higher overtone mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OSCILLATOR-STARTUP-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The time the oscillator needs to deliver a stable and valid signal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OSCILLATOR-TOLERANCE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The long-term deviation of the nominal frequency to the real frequency. Influenced by manufacturing, layout, temperature, external components and voltage. Tolerances are critical for timer application and time synchronisation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::Oscillator -->
  <xsd:complexType name="OSCILLATOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The basic source for time in the ECU. Based on the oscillator the PU clock is generated, but also the communication and other peripherals need timing information (ADC, PWM, timer).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:ECU-ELECTRONICS"/>
      <xsd:group ref="AR:OSCILLATOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="OSCILLATOR--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="OSCILLATOR"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Communication::PPortComSpec -->
  <xsd:group name="P-PORT-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes for P-Ports. This class will contain attributes that are valid for all kinds of provide ports, independent of client-server or sender-receiver communication patterns.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class InstanceRefs::PPortInCompositionInstanceRef -->
  <xsd:group name="P-PORT-IN-COMPOSITION-INSTANCE-REF">
    <xsd:sequence>
      <xsd:element name="TARGET-P-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:P-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::PPortInCompositionInstanceRef -->
  <xsd:complexType name="P-PORT-IN-COMPOSITION-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:PORT-IN-COMPOSITION-TYPE-INSTANCE-REF"/>
      <xsd:group ref="AR:P-PORT-IN-COMPOSITION-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::PPortPrototype -->
  <xsd:group name="P-PORT-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>Component port providing a certain port interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PROVIDED-COM-SPECS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODE-SWITCH-SENDER-COM-SPEC" type="AR:MODE-SWITCH-SENDER-COM-SPEC"/>
            <xsd:element name="QUEUED-SENDER-COM-SPEC" type="AR:QUEUED-SENDER-COM-SPEC"/>
            <xsd:element name="SERVER-COM-SPEC" type="AR:SERVER-COM-SPEC"/>
            <xsd:element name="UNQUEUED-SENDER-COM-SPEC" type="AR:UNQUEUED-SENDER-COM-SPEC"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROVIDED-INTERFACE-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-INTERFACE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Components::PPortPrototype -->
  <xsd:complexType name="P-PORT-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Component port providing a certain port interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:PORT-PROTOTYPE"/>
      <xsd:group ref="AR:P-PORT-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="P-PORT-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="P-PORT-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Peripherals::PWD -->
  <xsd:group name="PWD">
    <xsd:annotation>
      <xsd:documentation>Pulse Width Demodulation is the inverse method of PWM. Here the processing unit is trying to gather information about a signal. A PWD can detect rising and falling edges and call the software in order to calculate the pulse width. When a PWD have more than one input signal the frequency and phase between the signals can be obtained.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MODE" type="AR:PWD-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A Pulse Width Demodulation peripheral can be configured to decode a two phase or a three phase input signals.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PHASE-DETECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Some timers have the possibility to detect signals from a quadrature rotating switch. There are two outputs signal from such a switch; the signals are 90 degrees phase shifted from each other. The rotation of the switch can then automatically be detected by a special function in a timer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::PWD -->
  <xsd:complexType name="PWD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Pulse Width Demodulation is the inverse method of PWM. Here the processing unit is trying to gather information about a signal. A PWD can detect rising and falling edges and call the software in order to calculate the pulse width. When a PWD have more than one input signal the frequency and phase between the signals can be obtained.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:PULSE-WIDTH-PERIPHERAL"/>
      <xsd:group ref="AR:PWD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::PWM -->
  <xsd:group name="PWM">
    <xsd:annotation>
      <xsd:documentation>Pulse Width Modulation refers to a method of carrying information on a train of pulses, the information being encoded in the width of the pulses. The frequency is normally not changed. It's only relationship between the high and low level of the signal which are changed. A PWM interface is usually a part of a processing unit. It provides the capability to communicate with another system with an easy protocol.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Peripherals::PWM -->
  <xsd:complexType name="PWM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Pulse Width Modulation refers to a method of carrying information on a train of pulses, the information being encoded in the width of the pulses. The frequency is normally not changed. It's only relationship between the high and low level of the signal which are changed. A PWM interface is usually a part of a processing unit. It provides the capability to communicate with another system with an easy protocol.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:PULSE-WIDTH-PERIPHERAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class AutosarTopLevelStructure::PackageableElement -->
  <xsd:group name="PACKAGEABLE-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>This Metaclass specifies the ability to be a member of an autosar package.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class ECUCParameterDefTemplate::ParamConfContainerDef -->
  <xsd:group name="PARAM-CONF-CONTAINER-DEF">
    <xsd:annotation>
      <xsd:documentation>Used to define configuration containers that can hierarchically contain other containers and/or parameter definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MULTIPLE-CONFIGURATION-CONTAINER" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies whether this container is used to define multiple configuration sets. Only one container in the whole ModuleDef shall have this enabled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PARAMETERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ADD-INFO-PARAM-DEF" type="AR:ADD-INFO-PARAM-DEF"/>
            <xsd:element name="BOOLEAN-PARAM-DEF" type="AR:BOOLEAN-PARAM-DEF"/>
            <xsd:element name="ENUMERATION-PARAM-DEF" type="AR:ENUMERATION-PARAM-DEF"/>
            <xsd:element name="FLOAT-PARAM-DEF" type="AR:FLOAT-PARAM-DEF"/>
            <xsd:element name="FUNCTION-NAME-DEF" type="AR:FUNCTION-NAME-DEF"/>
            <xsd:element name="INTEGER-PARAM-DEF" type="AR:INTEGER-PARAM-DEF"/>
            <xsd:element name="LINKER-SYMBOL-DEF" type="AR:LINKER-SYMBOL-DEF"/>
            <xsd:element name="MULTILINE-STRING-PARAM-DEF" type="AR:MULTILINE-STRING-PARAM-DEF"/>
            <xsd:element name="STRING-PARAM-DEF" type="AR:STRING-PARAM-DEF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REFERENCES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CHOICE-REFERENCE-PARAM-DEF" type="AR:CHOICE-REFERENCE-PARAM-DEF"/>
            <xsd:element name="FOREIGN-REFERENCE-PARAM-DEF" type="AR:FOREIGN-REFERENCE-PARAM-DEF"/>
            <xsd:element name="INSTANCE-REFERENCE-PARAM-DEF" type="AR:INSTANCE-REFERENCE-PARAM-DEF"/>
            <xsd:element name="REFERENCE-PARAM-DEF" type="AR:REFERENCE-PARAM-DEF"/>
            <xsd:element name="SYMBOLIC-NAME-REFERENCE-PARAM-DEF" type="AR:SYMBOLIC-NAME-REFERENCE-PARAM-DEF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SUB-CONTAINERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CHOICE-CONTAINER-DEF" type="AR:CHOICE-CONTAINER-DEF"/>
            <xsd:element name="PARAM-CONF-CONTAINER-DEF" type="AR:PARAM-CONF-CONTAINER-DEF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ParamConfContainerDef -->
  <xsd:complexType name="PARAM-CONF-CONTAINER-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Used to define configuration containers that can hierarchically contain other containers and/or parameter definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:CONTAINER-DEF"/>
      <xsd:group ref="AR:PARAM-CONF-CONTAINER-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PARAM-CONF-CONTAINER-DEF--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PARAM-CONF-CONTAINER-DEF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUCParameterDefTemplate::ParamConfMultiplicity -->
  <xsd:group name="PARAM-CONF-MULTIPLICITY">
    <xsd:annotation>
      <xsd:documentation>Common class used to express multiplicities in the definition of configuration parameters, references and containers.
If not stated otherwise the default multiplicity is exactly one mandatory occurrence of the specified element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LOWER-MULTIPLICITY" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The lower multiplicity of the specified element.
0: optional
1: at least one occurence
n: at least n occurrences

atpVariation: [ECUC00082]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UPPER-MULTIPLICITY" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The upper multiplicity of the specified element.
0: no occurrence (used for VSMD)
1: at most one occurrence
m: at most m occurrences
*: arbitrary number of occurrences

atpVariation: [ECUC00082]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Characteristic::ParameterAccess -->
  <xsd:group name="PARAMETER-ACCESS">
    <xsd:annotation>
      <xsd:documentation>The presence of a ParameterAccess implies that a RunnableEntity needs access to a ParameterDataPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCESSED-PARAMETER" type="AR:AR-PARAMETER-REF" minOccurs="0"/>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Characteristic::ParameterAccess -->
  <xsd:complexType name="PARAMETER-ACCESS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The presence of a ParameterAccess implies that a RunnableEntity needs access to a ParameterDataPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAMETER-ACCESS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Components::ParameterComponentType -->
  <xsd:group name="PARAMETER-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>The ParameterComponentType defines parameters and characteristic values accessible via provided Ports. The provided values are the same for all connected ComponentPrototypes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Components::ParameterComponentType -->
  <xsd:complexType name="PARAMETER-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ParameterComponentType defines parameters and characteristic values accessible via provided Ports. The provided values are the same for all connected ComponentPrototypes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataPrototoypes::ParameterDataPrototype -->
  <xsd:group name="PARAMETER-DATA-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>A parameter element used for parameter interface and internal behavior, supporting signal like parameter and characteristic value communication patterns and parameter and characteristic value definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INIT-VALUE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataPrototoypes::ParameterDataPrototype -->
  <xsd:complexType name="PARAMETER-DATA-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A parameter element used for parameter interface and internal behavior, supporting signal like parameter and characteristic value communication patterns and parameter and characteristic value definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:DATA-PROTOTYPE"/>
      <xsd:group ref="AR:AUTOSAR-DATA-PROTOTYPE"/>
      <xsd:group ref="AR:PARAMETER-DATA-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PARAMETER-DATA-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PARAMETER-DATA-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Characteristic::ParameterInterface -->
  <xsd:group name="PARAMETER-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>A parameter interface declares a number of parameter and characteristic values to be exchanged between parameter components and software components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PARAMETERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-DATA-PROTOTYPE" type="AR:PARAMETER-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Characteristic::ParameterInterface -->
  <xsd:complexType name="PARAMETER-INTERFACE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A parameter interface declares a number of parameter and characteristic values to be exchanged between parameter components and software components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:PORT-INTERFACE"/>
      <xsd:group ref="AR:PARAMETER-INTERFACE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::ParameterPortAnnotation -->
  <xsd:group name="PARAMETER-PORT-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port used for calibration regarding a certain prmElementPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PARAMETER-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PARAMETER-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::ParameterPortAnnotation -->
  <xsd:complexType name="PARAMETER-PORT-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port used for calibration regarding a certain prmElementPrototype.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:PARAMETER-PORT-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::ParameterValue -->
  <xsd:group name="PARAMETER-VALUE">
    <xsd:annotation>
      <xsd:documentation>Common class to all types of configuration values</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFINITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:CONFIG-PARAMETER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ANNOTATION" type="AR:ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="IS-AUTO-VALUE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>When withAuto is set to "true" for this parameter definition the isAutoValue can be set to "true".
If isAutoValue is set to "true" the actual value will not be considered during ECU Configuration but will be (re-)calculated by the code generator and stored in the value attribute afterwards. These implicit updated values might require a re-generation of other modules which reference these values.

If isAutoValue is not present the default is "false".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class CoreCommunication::Pdu -->
  <xsd:group name="PDU">
    <xsd:annotation>
      <xsd:documentation>An IPdu, NmPdu, XCP Pdu or NPdu (XOR).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DATA-N-PDU"/>
      <xsd:enumeration value="DCM-I-PDU"/>
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
      <xsd:enumeration value="MULTIPLEXED-I-PDU"/>
      <xsd:enumeration value="NM-PDU"/>
      <xsd:enumeration value="SIGNAL-I-PDU"/>
      <xsd:enumeration value="XCP-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Fibex4Multiplatform::PduMappingDefaultValue -->
  <xsd:group name="PDU-MAPPING-DEFAULT-VALUE">
    <xsd:annotation>
      <xsd:documentation>Default Value which will be distributed if no I-Pdu has been received since last sending.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DEFAULT-VALUE-ELEMENT" type="AR:DEFAULT-VALUE-ELEMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::PduMappingDefaultValue -->
  <xsd:complexType name="PDU-MAPPING-DEFAULT-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Default Value which will be distributed if no I-Pdu has been received since last sending.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PDU-MAPPING-DEFAULT-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::PduToFrameMapping -->
  <xsd:group name="PDU-TO-FRAME-MAPPING">
    <xsd:annotation>
      <xsd:documentation>A PduToFrameMapping defines the composition of Pdus in each frame. 

Depending on its relation to entities such channels and clusters it can be unambiguously deduced whether a fan-out is handled by the Pdu router or the Bus Interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="START-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This parameter is necessary to describe the byteposition of a Pdu within a Frame.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UPDATE-INDICATION-BIT-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Indication to the receivers that the corresponding I-Pdu was updated by the sender. 
This attribute describes the position of the update bit in the frame that aggregates this PDUToFrameMapping. Length is always one bit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::PduToFrameMapping -->
  <xsd:complexType name="PDU-TO-FRAME-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A PduToFrameMapping defines the composition of Pdus in each frame. 

Depending on its relation to entities such channels and clusters it can be unambiguously deduced whether a fan-out is handled by the Pdu router or the Bus Interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PDU-TO-FRAME-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class PerInstanceMemory::PerInstanceMemory -->
  <xsd:group name="PER-INSTANCE-MEMORY">
    <xsd:annotation>
      <xsd:documentation>Defines a 'C' typed memory-block that needs to be available for each instance of the SW-component.  This is typically only useful if supportsMultipleInstantiation is TRUE of if the component defines NVRAM access via permanent blocks.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INIT-VALUE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies initial value(s) of the PerInstanceMemory</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The name of the "C"-type</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPE-DEFINITION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A definition of the type with the syntax of a 'C' typedef.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PerInstanceMemory::PerInstanceMemory -->
  <xsd:complexType name="PER-INSTANCE-MEMORY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines a 'C' typed memory-block that needs to be available for each instance of the SW-component.  This is typically only useful if supportsMultipleInstantiation is TRUE of if the component defines NVRAM access via permanent blocks.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PER-INSTANCE-MEMORY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PER-INSTANCE-MEMORY--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PER-INSTANCE-MEMORY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SwcImplementation::PerInstanceMemorySize -->
  <xsd:group name="PER-INSTANCE-MEMORY-SIZE">
    <xsd:annotation>
      <xsd:documentation>Resources needed by the allocation of PerInstanceMemory for each SWC instance. Note that these resources are not covered by an ObjectFileSection, because they are supposed to be allocated by the RTE.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ALIGNMENT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Required alignment (1,2,4,...) of the referenced PerInstanceMemory</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PER-INSTANCE-MEMORY-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PER-INSTANCE-MEMORY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Size (in bytes) of the reference perInstanceMemory.
The aggregation of PerInstanceMemorySize is subject to variability with the purpose to support variability in the software components implementations. Different algorithms in the implementation might require a different PerInstanceMemorySize.</xsd:documentation>
          <xsd:appinfo source="tags">Vh.LatestBindingTime="PreCompileTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcImplementation::PerInstanceMemorySize -->
  <xsd:complexType name="PER-INSTANCE-MEMORY-SIZE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Resources needed by the allocation of PerInstanceMemory for each SWC instance. Note that these resources are not covered by an ObjectFileSection, because they are supposed to be allocated by the RTE.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PER-INSTANCE-MEMORY-SIZE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EventTriggeringConstraint::PeriodicEventTriggering -->
  <xsd:group name="PERIODIC-EVENT-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>Periodic means that the occurrence behavior of the event has a strict periodic pattern, given by the period attribute. Additionally, it is possible to soften the strictness of the event triggering by specifying a jitter for the occurrence behavior. In this case, the event has still a period base behavior, but the occurrences of the event may have a bounded jitter.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="JITTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MINIMUM-INTER-ARRIVAL-TIME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PERIOD-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EventTriggeringConstraint::PeriodicEventTriggering -->
  <xsd:complexType name="PERIODIC-EVENT-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Periodic means that the occurrence behavior of the event has a strict periodic pattern, given by the period attribute. Additionally, it is possible to soften the strictness of the event triggering by specifying a jitter for the occurrence behavior. In this case, the event has still a period base behavior, but the occurrences of the event may have a bounded jitter.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EVENT-TRIGGERING-CONSTRAINT"/>
      <xsd:group ref="AR:PERIODIC-EVENT-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::Peripheral -->
  <xsd:group name="PERIPHERAL">
    <xsd:annotation>
      <xsd:documentation>General Element for all peripherals.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CAN-BE-DISABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the peripheral can be logically enabled or disabled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::Peripheral -->
  <xsd:complexType name="PERIPHERAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>General Element for all peripherals.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::PeripheralHWPort -->
  <xsd:group name="PERIPHERAL-HW-PORT">
    <xsd:annotation>
      <xsd:documentation>This port is directed from the peripheral to the ecu electronics and communication.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BUFFERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="BUFFER" type="AR:BUFFER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INVERSION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>An input or output can sometimes be programmed to invert the level of a signal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="POWER-ON-CAPABILITY" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The peripheral device has the feature to issue a Power On event to the ECU.
Example: Some CAN bus transceivers have a dedicated low power voltage regulator and a feature, which allows to turn on the main voltage regulator of the ECU by detecting a bus activity.
Example: A wired-or connection of a termination KL30 and KL15 can fulfil this requirement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAKE-UP-CAPABILITY" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The peripheral device has the feature to issue a wake-up event to the processing unit.
Example: HW Port with Key-Wake-Up on a PU is still active while the PU is in stop mode and only partially supplied with power. The Key-Wake-Up reacts on any changes at the input of the HW Port with the activation of the power supply, the activation of the clock system and later the resuming of the software, which has to process the input of the HW Port.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::PeripheralHWPort -->
  <xsd:complexType name="PERIPHERAL-HW-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This port is directed from the peripheral to the ecu electronics and communication.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:PERIPHERAL-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SignalPaths::PermissibleSignalPath -->
  <xsd:group name="PERMISSIBLE-SIGNAL-PATH">
    <xsd:annotation>
      <xsd:documentation>The PermissibleSignalPath describes the way a data element shall take in the topology. The path is described by ordered references to PhysicalChannels. 

If more than one PermissibleSignalPath is defined for the same
signal/operation attributes, any of them can be chosen. Such a signal path can be a constraint for the communication matrix . This path describes that one data element should take path A (e.g. 1. CAN channel, 2. LIN channel) 
and not path B (1. CAN channel, FlexRay channel A). 

This has an effect on the frame generation and the frame path.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-OPERATION-ARGUMENTS" type="AR:SWC-TO-SWC-OPERATION-ARGUMENTS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHYSICAL-CHANNEL-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PHYSICAL-CHANNEL-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:PHYSICAL-CHANNEL--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNALS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-SIGNAL" type="AR:SWC-TO-SWC-SIGNAL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SignalPaths::PermissibleSignalPath -->
  <xsd:complexType name="PERMISSIBLE-SIGNAL-PATH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The PermissibleSignalPath describes the way a data element shall take in the topology. The path is described by ordered references to PhysicalChannels. 

If more than one PermissibleSignalPath is defined for the same
signal/operation attributes, any of them can be chosen. Such a signal path can be a constraint for the communication matrix . This path describes that one data element should take path A (e.g. 1. CAN channel, 2. LIN channel) 
and not path B (1. CAN channel, FlexRay channel A). 

This has an effect on the frame generation and the frame path.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SIGNAL-PATH-CONSTRAINT"/>
      <xsd:group ref="AR:PERMISSIBLE-SIGNAL-PATH"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GlobalConstraints::PhysConstrs -->
  <xsd:group name="PHYS-CONSTRS">
    <xsd:sequence>
      <xsd:element name="LOWER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
      <xsd:element name="UPPER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
      <xsd:element name="UNIT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:UNIT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GlobalConstraints::PhysConstrs -->
  <xsd:complexType name="PHYS-CONSTRS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:PHYS-CONSTRS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CoreTopology::PhysicalChannel -->
  <xsd:group name="PHYSICAL-CHANNEL">
    <xsd:annotation>
      <xsd:documentation>A physical channel is the transmission medium that is used to send and receive information between two communicating ECUs. Each CommunicationCluster has at least one physical channel. Bus systems like CAN and LIN only have exactly one PhysicalChannel. A FlexRay cluster may have more than one PhysicalChannels that may be used in parallel for redundant communication.

An ECU is part of a cluster if it contains at least one controller that is connected to at least one channel of the cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-TRIGGERINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-FRAME-TRIGGERING" type="AR:CAN-FRAME-TRIGGERING"/>
            <xsd:element name="ETHERNET-FRAME-TRIGGERING" type="AR:ETHERNET-FRAME-TRIGGERING"/>
            <xsd:element name="FLEXRAY-FRAME-TRIGGERING" type="AR:FLEXRAY-FRAME-TRIGGERING"/>
            <xsd:element name="LIN-FRAME-TRIGGERING" type="AR:LIN-FRAME-TRIGGERING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="I-PDU-TRIGGERINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-PDU-TRIGGERING" type="AR:I-PDU-TRIGGERING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="I-SIGNAL-TRIGGERINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-SIGNAL-TRIGGERING" type="AR:I-SIGNAL-TRIGGERING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreTopology::PhysicalChannel -->
  <xsd:complexType name="PHYSICAL-CHANNEL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A physical channel is the transmission medium that is used to send and receive information between two communicating ECUs. Each CommunicationCluster has at least one physical channel. Bus systems like CAN and LIN only have exactly one PhysicalChannel. A FlexRay cluster may have more than one PhysicalChannels that may be used in parallel for redundant communication.

An ECU is part of a cluster if it contains at least one controller that is connected to at least one channel of the cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PHYSICAL-CHANNEL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PHYSICAL-CHANNEL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLEXRAY-PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="LIN-PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="PHYSICAL-CHANNEL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Units::PhysicalDimension -->
  <xsd:group name="PHYSICAL-DIMENSION">
    <xsd:annotation>
      <xsd:documentation>This class represents a physical dimension.
If the physical dimension of two units is identical a conversion between them is possible. The conversion between units is related to the definition of the physical dimension.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="PHYSICAL-DIMENSION";asam.useCase="MDX";msr.id="type__PHYSICAL-DIMENSION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LENGTH-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The exponent of the physical dimension "length"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__LENGTH-EXP";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MASS-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The exponent of the physical dimension "mass"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__MASS-EXP";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The exponent of the physical dimension "time"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__TIME-EXP";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CURRENT-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>the exponent of the physical dimension "electric current"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__CURRENT-EXP";msr.tbdString="true";xml.sequenceOffset="50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TEMPERATURE-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The exponent of the physical dimension "temperature"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__TEMPERATURE-EXP";msr.tbdString="true";xml.sequenceOffset="60"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MOLAR-AMOUNT-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The exponent of the physical dimension "quantity of substance"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__MOLAR-AMOUNT-EXP";msr.tbdString="true";xml.sequenceOffset="70"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LUMINOUS-INTENSITY-EXP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The exponent of the physical dimension "luminous intensity"</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PHYSICAL-DIMENSION_TYPE__LUMINOUS-INTENSITY-EXP";msr.tbdString="true";xml.sequenceOffset="80"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Units::PhysicalDimension -->
  <xsd:complexType name="PHYSICAL-DIMENSION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class represents a physical dimension.
If the physical dimension of two units is identical a conversion between them is possible. The conversion between units is related to the definition of the physical dimension.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="PHYSICAL-DIMENSION";asam.useCase="MDX";msr.id="type__PHYSICAL-DIMENSION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PHYSICAL-DIMENSION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PHYSICAL-DIMENSION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PHYSICAL-DIMENSION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUResourceTemplate::PinHWConnection -->
  <xsd:group name="PIN-HW-CONNECTION">
    <xsd:annotation>
      <xsd:documentation>Is used to connect the HWPins of the HWPorts that are referenced by the HWConnection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CONNECTED-PIN-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="CONNECTED-PIN-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-PIN--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::PinHWConnection -->
  <xsd:complexType name="PIN-HW-CONNECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Is used to connect the HWPins of the HWPorts that are referenced by the HWConnection.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PIN-HW-CONNECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortAPIOptions::PortAPIOption -->
  <xsd:group name="PORT-API-OPTION">
    <xsd:annotation>
      <xsd:documentation>Options how to generate the signatures of calls for an AtomicSoftwareComponentType in order to communicate over a PortPrototype (for calls into a RunnableEntity as well as for calls from a RunnableEntity to the PortPrototype).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ENABLE-TAKE-ADDRESS" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>If set to true, the software-component is able to use the API reference for deriving a pointer to an object.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INDIRECT-API" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>true: Specifies an "indirect API" to be generated for the associated port, which means that the SWC is able to access the actions on a port via a pointer to an object representing a port. This allows e.g. iterating over ports in a loop. This option has no effect for PPorts of client/server interfaces.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PORT-ARG-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PORT-DEFINED-ARGUMENT-VALUE" type="AR:PORT-DEFINED-ARGUMENT-VALUE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortAPIOptions::PortAPIOption -->
  <xsd:complexType name="PORT-API-OPTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Options how to generate the signatures of calls for an AtomicSoftwareComponentType in order to communicate over a PortPrototype (for calls into a RunnableEntity as well as for calls from a RunnableEntity to the PortPrototype).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PORT-API-OPTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortAPIOptions::PortDefinedArgumentValue -->
  <xsd:group name="PORT-DEFINED-ARGUMENT-VALUE">
    <xsd:annotation>
      <xsd:documentation>A "port defined argument value" is passed to a runnable dealing with the operations provided by a given port. Restricted to PPorts of a client/server interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="VALUE-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-PRIMITIVE-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortAPIOptions::PortDefinedArgumentValue -->
  <xsd:complexType name="PORT-DEFINED-ARGUMENT-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A "port defined argument value" is passed to a runnable dealing with the operations provided by a given port. Restricted to PPorts of a client/server interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PORT-DEFINED-ARGUMENT-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InstanceRefs::PortInCompositionTypeInstanceRef -->
  <xsd:group name="PORT-IN-COMPOSITION-TYPE-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-COMPONENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class InstanceRefs::PortInSystemInstanceRef -->
  <xsd:group name="PORT-IN-SYSTEM-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-COMPONENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTEXT-COMPONENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-COMPOSITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SOFTWARE-COMPOSITION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-COMPONENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::PortInSystemInstanceRef -->
  <xsd:complexType name="PORT-IN-SYSTEM-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:PORT-IN-SYSTEM-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::PortInterface -->
  <xsd:group name="PORT-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>Abstract base class for an interface that is either provided or required by a port of a  software component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="IS-SERVICE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This flag is set, if the PortInterface is to be used for communication between an ApplicationSoftwareComponentType and a ServiceComponentType (namely an AUTOSAR Service, ECU abstraction or Complex Driver) located on the same ECU. Otherwise the flag is not set.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="PORT-INTERFACE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE"/>
      <xsd:enumeration value="MODE-INTERFACE"/>
      <xsd:enumeration value="NV-DATA-INTERFACE"/>
      <xsd:enumeration value="PARAMETER-INTERFACE"/>
      <xsd:enumeration value="SENDER-RECEIVER-INTERFACE"/>
      <xsd:enumeration value="TRIGGER-INTERFACE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class PortInterface::PortInterfaceMapping -->
  <xsd:group name="PORT-INTERFACE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Specifies one PortInterfaceMapping to support the connection of Ports typed by two different PortInterfaces with unequal named PortInterface elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="PORT-INTERFACE-MAPPING--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="MODE-INTERFACE-MAPPING"/>
      <xsd:enumeration value="TRIGGER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="VARIABLE-AND-PARAMETER-INTERFACE-MAPPING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class PortInterface::PortInterfaceMappingGroup -->
  <xsd:group name="PORT-INTERFACE-MAPPING-GROUP">
    <xsd:annotation>
      <xsd:documentation>Specifies a set of (one or more) PortInterfaceMappings to support the connection of Ports typed by PortInterfaces with unequal named PortInterface elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PORT-INTERFACE-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-SERVER-INTERFACE-MAPPING" type="AR:CLIENT-SERVER-INTERFACE-MAPPING"/>
            <xsd:element name="MODE-INTERFACE-MAPPING" type="AR:MODE-INTERFACE-MAPPING"/>
            <xsd:element name="TRIGGER-INTERFACE-MAPPING" type="AR:TRIGGER-INTERFACE-MAPPING"/>
            <xsd:element name="VARIABLE-AND-PARAMETER-INTERFACE-MAPPING" type="AR:VARIABLE-AND-PARAMETER-INTERFACE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::PortInterfaceMappingGroup -->
  <xsd:complexType name="PORT-INTERFACE-MAPPING-GROUP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies a set of (one or more) PortInterfaceMappings to support the connection of Ports typed by PortInterfaces with unequal named PortInterface elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PORT-INTERFACE-MAPPING-GROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Components::PortPrototype -->
  <xsd:group name="PORT-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>Base class for the ports of an AUTOSAR software component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DELEGATED-PORT-ANNOTATION" type="AR:DELEGATED-PORT-ANNOTATION" minOccurs="0"/>
      <xsd:element name="IO-HW-ABSTRACTION-SERVER-ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="IO-HW-ABSTRACTION-SERVER-ANNOTATION" type="AR:IO-HW-ABSTRACTION-SERVER-ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-PORT-ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODE-PORT-ANNOTATION" type="AR:MODE-PORT-ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NV-DATA-PORT-ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="NV-DATA-PORT-ANNOTATION" type="AR:NV-DATA-PORT-ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PARAMETER-PORT-ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-PORT-ANNOTATION" type="AR:PARAMETER-PORT-ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SENDER-RECEIVER-ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RECEIVER-ANNOTATION" type="AR:RECEIVER-ANNOTATION"/>
            <xsd:element name="SENDER-ANNOTATION" type="AR:SENDER-ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRIGGER-PORT-ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TRIGGER-PORT-ANNOTATION" type="AR:TRIGGER-PORT-ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="PORT-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="P-PORT-PROTOTYPE"/>
      <xsd:enumeration value="R-PORT-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class VariantHandling::PostBuildVariantCriterion -->
  <xsd:group name="POST-BUILD-VARIANT-CRITERION">
    <xsd:annotation>
      <xsd:documentation>This class speicifies one particular PostBuildVariantSelector.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPU-METHOD-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPU-METHOD--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::PostBuildVariantCriterion -->
  <xsd:complexType name="POST-BUILD-VARIANT-CRITERION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class speicifies one particular PostBuildVariantSelector.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:POST-BUILD-VARIANT-CRITERION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="POST-BUILD-VARIANT-CRITERION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="POST-BUILD-VARIANT-CRITERION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class VariantHandling::PostBuildVariantCriterionMapping -->
  <xsd:group name="POST-BUILD-VARIANT-CRITERION-MAPPING">
    <xsd:sequence>
      <xsd:element name="POST-BUILD-VARIANT-CRITERION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:POST-BUILD-VARIANT-CRITERION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-SYSTEM-CONST-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-SYSTEMCONST--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::PostBuildVariantCriterionMapping -->
  <xsd:complexType name="POST-BUILD-VARIANT-CRITERION-MAPPING" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:POST-BUILD-VARIANT-CRITERION-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class VariantHandling::PostBuildVariantCriterionValue -->
  <xsd:group name="POST-BUILD-VARIANT-CRITERION-VALUE">
    <xsd:annotation>
      <xsd:documentation>This class specifies a the value which must be assigned to a particular variant criterion in order to bind the variation point. If multiple criterion/value pairs are specified, they all must must match to bind the variation point.

In other words binding</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" type="AR:ATTRIBUTE-VALUE-VARIATION-POINT" minOccurs="0"/>
      <xsd:element name="VARIANT-CRITERION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:POST-BUILD-VARIANT-CRITERION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::PostBuildVariantCriterionValue -->
  <xsd:complexType name="POST-BUILD-VARIANT-CRITERION-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class specifies a the value which must be assigned to a particular variant criterion in order to bind the variation point. If multiple criterion/value pairs are specified, they all must must match to bind the variation point.

In other words binding</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:POST-BUILD-VARIANT-CRITERION-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerDriverHWElement -->
  <xsd:group name="POWER-DRIVER-HW-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>Power Driver HW Element describes a group of electronic devices, which perform signal transformations with hardware devices. The main focus of the ECU Resource Template is the logical description of these elements, necessary for the system generation and relevant for the SW development.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CURRENT-LIMITATION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device limits the maximum current conduction. The limit has to be specified. If this element does not occur the HW Element does not provide current limitation.
Unit: Ampere</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DEFAULT-RESET-BEHAVIUOR" type="AR:HW-ELEMENT-DEFAULT-RESET-BEHAVIOR-ENUM" minOccurs="0"/>
      <xsd:element name="NOTIFICATION" type="AR:POWER-DRIVER-NOTIFICATION" minOccurs="0"/>
      <xsd:element name="ON-STATE-RESISTANCE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The resistance in ON state can be used together with the current through this element to determine the static thermal power dissipation of the element itself and the ECU completely by summing up each element with power dissipation.
As the heating up of an power element follows with an exponential delay, the ratio of on and off times is later needed in the system generation process.
This information can give the first hint on critical issues of thermal design, but does not replace a complete static and dynamic verification of the thermal layout.
Unit: Ohm</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="POWER-DRIVER-TYPE" type="AR:HW-ELEMENT-POWER-DRIVER-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the general type of the element. Type is a most common naming for an element. Several sets of types exist. Type is mandatory for the usage of the ECU Resource Template.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROTECTION" type="AR:POWER-DRIVER-PROTECTION" minOccurs="0"/>
      <xsd:element name="RESET-ON-FAULT-BEHAVIOUR" type="AR:HW-ELEMENT-RESET-ON-FAULT-BEHAVIOUR-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describe the way the element is reactivated after a self protection sequence was entered</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerDriverHWElement -->
  <xsd:complexType name="POWER-DRIVER-HW-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Power Driver HW Element describes a group of electronic devices, which perform signal transformations with hardware devices. The main focus of the ECU Resource Template is the logical description of these elements, necessary for the system generation and relevant for the SW development.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:ECU-ELECTRONICS"/>
      <xsd:group ref="AR:POWER-DRIVER-HW-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerDriverHWPort -->
  <xsd:group name="POWER-DRIVER-HW-PORT">
    <xsd:annotation>
      <xsd:documentation>Define the option of a Power Driver that the output of a Power Driver can be superposed by a PWM signal asserted by a HW Element e.g. a microprocessor. 
In most cases, the PWM signal is connected by a separate wire, even when the general control information are transmitted by a bus.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PWM-MAX-FREQUENCY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>It defines the upper limit at which the device can fulfil the PWM capability.
EMC and power dissipation are increasing almost exponential with the PWM frequency. Choosing PWM frequencies be aware that some effects can cause secondary effects, which can create a audible noise for the user, e.g. a PWM dimmed lamp can be noticed by the driver.
Unit: Hz</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PWM-MIN-OFF-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the characteristic, that a Power Driver has to be off at least a minimum time in order to assure the function.
Unit: s</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PWM-MIN-ON-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the characteristic, that a Power Driver has to be on at least a minimum time in order to assure the function.
Unit: s</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerDriverHWPort -->
  <xsd:complexType name="POWER-DRIVER-HW-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Define the option of a Power Driver that the output of a Power Driver can be superposed by a PWM signal asserted by a HW Element e.g. a microprocessor. 
In most cases, the PWM signal is connected by a separate wire, even when the general control information are transmitted by a bus.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:POWER-DRIVER-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerDriverNotification -->
  <xsd:group name="POWER-DRIVER-NOTIFICATION">
    <xsd:annotation>
      <xsd:documentation>Describe the status which cause a notification to the controlling devices of an ECU, e.g. to the PU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ISSUED-INTERRUPT-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:INTERRUPT-PRODUCE-HW-PORT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LOSS-OF-GROUND" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a loss of ground situation. The device was forced off, in order to avoid damages by excessive currents.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-CURRENT" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a too high current.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-VOLTAGE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a too high supply voltage.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-CURRENT" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a too low curent.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-VOLTAGE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a too low supply voltage.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPEN-LOAD" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected open loads. This situation is reported to the controlling portion of an ECU, e.g. to the PU.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OVER-TEMPERATURE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum allowed temperature was detected in the device. A protecting hardware has forced the device off.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SHORT-LOAD" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device was forced off, in order to avoid damages by excessive currents.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SHORT-TO-BATT" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a short to battery situation. The device was forced off, in order to avoid damages by excessive currents.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SHORT-TO-GROUND" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The device detected a short to ground situation. The device was forced off, in order to avoid damages by excessive currents.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerDriverNotification -->
  <xsd:complexType name="POWER-DRIVER-NOTIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describe the status which cause a notification to the controlling devices of an ECU, e.g. to the PU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:POWER-DRIVER-NOTIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerDriverProtection -->
  <xsd:group name="POWER-DRIVER-PROTECTION">
    <xsd:annotation>
      <xsd:documentation>The Power Driver HW Element / ASIC turns off by internal means in order to protect the device against severe damages.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LOSS-OF-GROUND-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Is protected against loss of ground.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-CURRENT-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximal current limits are exceeded.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-VOLTAGE-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximal voltage limits are exceeded.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-CURRENT-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimal current limits are exceeded.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-VOLTAGE-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimal voltage limits are exceeded.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OVER-TEMPERATURE-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Is protected against over-temperature.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="REVERSE-BATTERY-PROTECTION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Is protected against reverse battery voltage.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerDriverProtection -->
  <xsd:complexType name="POWER-DRIVER-PROTECTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Power Driver HW Element / ASIC turns off by internal means in order to protect the device against severe damages.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:POWER-DRIVER-PROTECTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerSupplyCurrentNotification -->
  <xsd:group name="POWER-SUPPLY-CURRENT-NOTIFICATION">
    <xsd:sequence>
      <xsd:element name="HYSTERESIS" type="xsd:double" minOccurs="0"/>
      <xsd:element name="INTERRUPT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INTERRUPT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:INTERRUPT-PRODUCE-HW-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LEVEL" type="xsd:double" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerSupplyCurrentNotification -->
  <xsd:complexType name="POWER-SUPPLY-CURRENT-NOTIFICATION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:POWER-SUPPLY-CURRENT-NOTIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerSupplyHWElement -->
  <xsd:group name="POWER-SUPPLY-HW-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>The Power Supply HW Element provides information about the power source of the ECU. There can be multiple power supplies within one ECU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BACKUP-CAPACITY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Define the capability assigned to the output of the Power Supply HW Element to maintain the output voltage stable for a certain time after the undervoltage status information is asserted.
In the ECU Resource Template the Backup Capacity is described as time. The time is dependent from the current consumed by the HW Elements connected to the according output, the SW-functions controlling the ECU hardware and the implementation of the Power Supply HW Element itself. The time has to be calculated from the available capacitors or measured in the application.
Example: For the energy storage for airbag applications capacitors stores energy for the airbag ignition for several seconds even the battery is completely disconnected.
Example: A combined step up/step down DC/DC converter can deliver a stable 5V volt output even when the input has already dropped to 3V. The undervoltage status is already set at a Vbatt level of 6V.
Unit: Ah</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DEFAULT-VOLTAGE-ON-RESET" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This value defines the nominal output voltage, which is supplied as default after a reset occured. This attribute is only applicable at power supplies with a programmable output voltage.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-VOLTAGE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum voltage that can be supplied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-VOLTAGE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The minimum voltage that can be supplied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NOTIFICATION-OVER-TEMPERATURE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Status information that the on-chip temperature on the Power Supply Hardware Element exceed the maximal, defined limit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NOTIFICATION-RESET" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The power on reset is generated depending on the output voltage. Valid operation of the ECU and the connected HW Elements are only possible if the output voltage is stable and within the specified output voltage range. Therefore most of the Power Supply HW Elements contain a circuitry, which generate a output signal which indicates an instable or unspecified voltage at the output. Some Power Supply HW Elements offer the possibility to adjust the reset thresholds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OVER-CURRENT-NOTIFICATION" type="AR:POWER-SUPPLY-CURRENT-NOTIFICATION" minOccurs="0"/>
      <xsd:element name="OVER-VOLTAGE-NOTIFICATION" type="AR:POWER-SUPPLY-VOLTAGE-NOTIFICATION" minOccurs="0"/>
      <xsd:element name="RESET-DELAY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The reset signal at the power-on reset is delayed by the Power Supply HW Element in order to enable the different ECU HW Elements to enter a stable and defined operation state when the reset signal is released.
Unit: s</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="RESET-ON-FAULT-BEHAVIOUR" type="AR:HW-ELEMENT-RESET-ON-FAULT-BEHAVIOUR-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describe the way the element is reactivated after a self protection sequence was entered</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="UNDER-VOLTAGE-NOTIFICATION" type="AR:POWER-SUPPLY-VOLTAGE-NOTIFICATION" minOccurs="0"/>
      <xsd:element name="WAKEUP-CAPABILITY" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the feature of the power supply to turn on the output voltage by an external event. In some cases this feature is coupled with other ECU internal HW elements e.g. transceivers and is the main feature used by the car specific power management. Different to other HW elements with this feature the power supply is the receiver of the signal, as more ECU function is only possible if the power supply is activated. Example: Philips CAN Transceivers have an output called INH, which allow together with some Voltage regulators with wake up capability to wake up the ECU at the presence of a CAN bus telegram. 
Example: The Wake up Capability is connected to the terminal KL15 (ignition), the ECU is waked up at the presence of KL15.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerSupplyHWElement -->
  <xsd:complexType name="POWER-SUPPLY-HW-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Power Supply HW Element provides information about the power source of the ECU. There can be multiple power supplies within one ECU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:ECU-ELECTRONICS"/>
      <xsd:group ref="AR:POWER-SUPPLY-HW-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerSupplyHWPort -->
  <xsd:group name="POWER-SUPPLY-HW-PORT">
    <xsd:annotation>
      <xsd:documentation>The Power Supply HW Port is used to model the power distribution within the ECU. If the direction is "in" the port is used to describe the power consumption of an HW Element. If the direction is "out" the port is used to describe a power source. The HW Connection between these two HW Ports can only be established between the Power Supply HW Port of the HW Element with direction "out" and a Power Supply HW Port of the Power Supply HW Element with direction "in".</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CAN-BE-SWITCHED-OFF" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the Power Supply HW Port can be switched off and therefore the supplied HW Element is switched off as well. This feature allows to describe which parts of an ECU are able be disconnected from their power supply based on software interaction. 
If the Power Supply HW Port has the direction 'in' the supplied HW Element can be switched off. 
If the Power Supply HW Port has the direction 'out' the power supply can be switched off and therefore all supplied HW Elements are switched off as well (This is used to describe groups of HW Elements that can only be switched off together). 
When however the whole ECU is disconnected from power the switchable power supply is of course not valid anymore.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SUPPLIED" type="AR:ELECTRICAL-RANGE" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerSupplyHWPort -->
  <xsd:complexType name="POWER-SUPPLY-HW-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Power Supply HW Port is used to model the power distribution within the ECU. If the direction is "in" the port is used to describe the power consumption of an HW Element. If the direction is "out" the port is used to describe a power source. The HW Connection between these two HW Ports can only be established between the Power Supply HW Port of the HW Element with direction "out" and a Power Supply HW Port of the Power Supply HW Element with direction "in".</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-PORT"/>
      <xsd:group ref="AR:POWER-SUPPLY-HW-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUElectronics::PowerSupplyVoltageNotification -->
  <xsd:group name="POWER-SUPPLY-VOLTAGE-NOTIFICATION">
    <xsd:sequence>
      <xsd:element name="HYSTERESES" type="xsd:double" minOccurs="0"/>
      <xsd:element name="INTERRUPT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INTERRUPT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:INTERRUPT-PRODUCE-HW-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LEVEL" type="xsd:double" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUElectronics::PowerSupplyVoltageNotification -->
  <xsd:complexType name="POWER-SUPPLY-VOLTAGE-NOTIFICATION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:POWER-SUPPLY-VOLTAGE-NOTIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Chapters::PredefinedChapter -->
  <xsd:group name="PREDEFINED-CHAPTER">
    <xsd:annotation>
      <xsd:documentation>Use &lt;ncoi1&gt; to generate information that is not content-orientated. This information is known as general document contents.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NCOI-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:CHAPTER-MODEL"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Chapters::PredefinedChapter -->
  <xsd:complexType name="PREDEFINED-CHAPTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;ncoi1&gt; to generate information that is not content-orientated. This information is known as general document contents.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__NCOI-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PREDEFINED-CHAPTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Constants::PrimitiveValueSpecification -->
  <xsd:group name="PRIMITIVE-VALUE-SPECIFICATION">
    <xsd:annotation>
      <xsd:documentation>A ValueSpecification which is intended to be assigned to a PrimitiveType.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VT" type="AR:VT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::PrimitiveValueSpecification -->
  <xsd:complexType name="PRIMITIVE-VALUE-SPECIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A ValueSpecification which is intended to be assigned to a PrimitiveType.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class GerneralParameters::PrmChar -->
  <xsd:group name="PRM-CHAR">
    <xsd:annotation>
      <xsd:documentation>Use &lt;prmChar&gt; to generate parameter values.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRM-CHAR_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COND" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:PRM-CHAR-NUMERICAL-CONTENTS"/>
        <xsd:group ref="AR:PRM-CHAR-TEXTUAL-CONTENTS"/>
      </xsd:choice>
      <xsd:element name="REMARK" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GerneralParameters::PrmChar -->
  <xsd:complexType name="PRM-CHAR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;prmChar&gt; to generate parameter values.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRM-CHAR_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PRM-CHAR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GerneralParameters::PrmCharAbsTol -->
  <xsd:group name="PRM-CHAR-ABS-TOL">
    <xsd:sequence>
      <xsd:element name="ABS" type="AR:NUMERICAL-VALUE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;abs&gt; to enter the absolute values of a parameter in a parameter table.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="70";msr.id="PRM-CHAR_absTol_TYPE__ABS"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TOL" type="AR:NUMERICAL-VALUE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;tol&gt; to enter the tolerance values of a parameter.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="80";msr.id="PRM-CHAR_absTol_TYPE__TOL"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GerneralParameters::PrmCharAbsTol -->
  <xsd:complexType name="PRM-CHAR-ABS-TOL" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:PRM-CHAR-ABS-TOL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GerneralParameters::PrmCharContents -->
  <xsd:group name="PRM-CHAR-CONTENTS">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class GerneralParameters::PrmCharMinTypMax -->
  <xsd:group name="PRM-CHAR-MIN-TYP-MAX">
    <xsd:sequence>
      <xsd:element name="MIN" type="AR:NUMERICAL-VALUE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;min&gt; to enter the minimum values of a parameter in a table of parameters.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="100";msr.id="PRM-CHAR_minTypMax_TYPE__MIN"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYP" type="AR:NUMERICAL-VALUE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;typ&gt; to enter the typical values of a parameter.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="110";msr.id="PRM-CHAR_minTypMax_TYPE__TYP"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX" type="AR:NUMERICAL-VALUE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;max&gt; to enter the maximum values of a parameter in a table of parameters.</xsd:documentation>
          <xsd:appinfo source="tags">xml.sequenceOffset="120";msr.id="PRM-CHAR_minTypMax_TYPE__MAX"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GerneralParameters::PrmCharMinTypMax -->
  <xsd:complexType name="PRM-CHAR-MIN-TYP-MAX" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:PRM-CHAR-MIN-TYP-MAX"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GerneralParameters::PrmCharNumericalContents -->
  <xsd:group name="PRM-CHAR-NUMERICAL-CONTENTS">
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:PRM-CHAR-ABS-TOL"/>
        <xsd:group ref="AR:PRM-CHAR-MIN-TYP-MAX"/>
      </xsd:choice>
      <xsd:element name="PRM-UNIT" type="AR:SINGLE-LANGUAGE-UNIT-NAMES" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GerneralParameters::PrmCharNumericalContents -->
  <xsd:complexType name="PRM-CHAR-NUMERICAL-CONTENTS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:PRM-CHAR-NUMERICAL-CONTENTS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GerneralParameters::PrmCharNumericalValue -->
  <xsd:group name="PRM-CHAR-NUMERICAL-VALUE">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class GerneralParameters::PrmCharTextualContents -->
  <xsd:group name="PRM-CHAR-TEXTUAL-CONTENTS">
    <xsd:sequence>
      <xsd:element name="TEXT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the value of a textual parameter</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="PRM-CHAR_textualContents_TYPE__TEXT"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GerneralParameters::PrmCharTextualContents -->
  <xsd:complexType name="PRM-CHAR-TEXTUAL-CONTENTS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:PRM-CHAR-TEXTUAL-CONTENTS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GerneralParameters::Prms -->
  <xsd:group name="PRMS">
    <xsd:annotation>
      <xsd:documentation>Use &lt;prms&gt; to create a parameter table for a number of parameters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRMS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="LABEL" type="AR:MULTILANGUAGE-LONG-NAME" minOccurs="0"/>
      <xsd:element name="PRM" type="AR:GENERAL-PARAMETER" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class GerneralParameters::Prms -->
  <xsd:attributeGroup name="PRMS">
    <xsd:annotation>
      <xsd:documentation>Use &lt;prms&gt; to create a parameter table for a number of parameters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRMS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class GerneralParameters::Prms -->
  <xsd:complexType name="PRMS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;prms&gt; to create a parameter table for a number of parameters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__PRMS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PRMS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:PRMS"/>
  </xsd:complexType>
  <!-- element group for class ProcessingUnit::ProcessingUnit -->
  <xsd:group name="PROCESSING-UNIT">
    <xsd:annotation>
      <xsd:documentation>A ProcessingUnit describes the plain processor core. The identifier provides the actual type name of the processing unit.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ADDRESSING-MODESS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ADDRESSING-MODES" type="AR:PROCESSING-UNIT-ADRESSING-MODE-ENUM" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>The addressing modes describe the options to access the data from the memory.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ARCHITECTURE-KIND" type="AR:PROCESSING-UNIT-ARCHITECTURE-KIND-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The kind of architecture</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ARCHITECTURE-NAME" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The name of the architecture (e.g. ARM, MIPS, PowerPC).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ARCHITECTURE-TYPE" type="AR:PROCESSING-UNIT-ARCHITECTURE-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The architecture type take influence to the performance index of a PU, but are not necessarily a main topic of software development, as some of the aspects are transparent  to the user as the are handled with in the compiler. The last two types are slightly different as they require a detailed planning during system design, how the data must be prepared in order to use the features of an SIMD or MIMD very efficiently. Application like video processing use in general this features by their data format, as every pixel information is formed by the three basic colours and intensity, thus each pixel is represented by four different values, which have to be processed simultaneously.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BOOT-TIME" type="AR:BOOT-TIME" minOccurs="0"/>
      <xsd:element name="DMA-CHANNEL-COUNT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Direct Memory Access is a mechanism for off-loading a PU and having transfer directly between memory and peripherals without involving the PU. 
In most common PU the DMA mechanism is implemented with a specialised cell (DMA unit) that transfers data between a peripheral device and memory, independent of the processor. The DMA controller becomes the bus master and directs the reads or writes between itself and memory. A typical DMA transfer can be described in three steps:
1. The PU sets up the DMA transfer by supplying the identity of the periphery module, the operation to perform on that device, the memory address that is the source or the destination of the data to be transferred, and the number of bytes to transfer. 
2. The DMA starts the operation on the periphery device and arbitrates for the bus. When the data is available, from the periphery device or memory, it transfers the data. The DMA unit supplies the memory address and initiates the next transfer. With this technique, a DMA unit can complete an entire transfer, which may be Kbytes of data, without bothering the PU. Many DMA units contain some memory to allow them to deal flexibly with delays either in transfer or those incurred while waiting to become bus master. 
3. Once the DMA transfer is complete, the DMA unit interrupts the processor, which can then determine by interrogating the DMA unit or examining memory whether the entire operation completed successfully. 
During an active DMA transfer the PU cannot access the involved resources concurrently.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IMPLEMENTATION-TECHNOLOGY" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Name of the technology used to implement this PU.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-INTERRUPT-NESTING-LEVELS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines how many interrupts are allowed to be activated at one time. This entry is mainly defined by the size of the according stack as the data saving mechanism during interrupts and the data passing mechanism during function calls use the stack.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MPU" type="AR:MPU" minOccurs="0"/>
      <xsd:element name="NATURAL-DATA-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The natural data size prvides information which data manipulations are optimized on this PU. The natural data size is typically the Data Register size. The PU is optimised for this data size.
Typical natural data size is one of following (in bits): 8, 16, 32, 64, other (12, 20, 80)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPCODE-SIZE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The attribute describes the typical length of the opcodes. In CISC machines the opcode size is variable due to the opcode itself. In RISC machines the opcode is by definition limited to a defined size.
Type definition is used if the PU has more than one opcode set is incorporated. E.g. at the ARM architecture there is the ARM opcode set (size of 32 bit) and the Thumb opcode set (size of 16 bit).
Code compression is a technology where the opcodes are stored in a compressed form and are automatically decompressed before execution.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PU-CLOCK" type="AR:CLOCK" minOccurs="0"/>
      <xsd:element name="REGISTER-MODELS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="REGISTER" type="AR:REGISTER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SPECIAL-OPCODESS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SPECIAL-OPCODES" type="AR:PROCESSING-UNIT-SPECIAL-OPCODES-ENUM" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>The following attributes are opcodes, which are not supported by all PUs. The support of this opcodes has an influence on the performance of the PU.
- Bit-manipulation
- Multiplication
- Division
- Multiply Accumulate
- Floating-point Support
In the future further opcodes may be possible.

The special opcodes  take important influence to the performance index of a PU, but are not main topic of the software development, as far as high level programming languages are used, due to the fact that these are covered by compiler settings, compiler strategies and software libraries where the direct usage or a SW emulation is available for almost any general use case. For some of these opcodes the main advantage is available only at the level of assembler programming or compiler optimization.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SUPPORTED-DATA-TYPES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SUPPORTED-DATA-TYPE" type="AR:SUPPORTED-DATA-TYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ProcessingUnit::ProcessingUnit -->
  <xsd:complexType name="PROCESSING-UNIT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A ProcessingUnit describes the plain processor core. The identifier provides the actual type name of the processing unit.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PROCESSING-UNIT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PROCESSING-UNIT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PROCESSING-UNIT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ComputationMethod::ProgCode -->
  <xsd:group name="PROG-CODE">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ComputationMethod::ProgCode -->
  <xsd:complexType name="PROG-CODE" abstract="false" mixed="false">
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Memory::ProvidedMemorySegment -->
  <xsd:group name="PROVIDED-MEMORY-SEGMENT">
    <xsd:annotation>
      <xsd:documentation>Describes one volatile memory segment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ALIGNMENT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Some memory architectures are organised for bigger natural data size than accessed by the PU. In this case memory might not be used completely and some memory locations are left blank due to misalignment. The overall memory size is not used by code or data.
Misalignment may be recovered by special mechanisms provided by hardware or software. In this case the access time will be increased. Certain PU architectures do not allow misalignment in code or data generally.
Unit: Byte</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ARCHITECTURAL-QUALITY" type="AR:ERROR-DETECTION-CORRECTION" minOccurs="0"/>
      <xsd:element name="MANUFACTURING-QUALITY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>As memory holds the executable program as well as the according data, memory needs a level of quality and reliability according to the purpose of the ECU. In most applications today memory is the biggest homogeneous hardware block; therefore quality and reliability of memory have the biggest impact on ECU performance and availability.
With the introduction of non-volatile memory and the use of huge DRAM memories the aspect of quality and reliability gains more importance.
Despite all Zero-defect programs of the semiconductor suppliers a defect rate in the range of 1 to 5 ppm must be considered as given even for critical applications.
Separate quality data for Endurance and Data retention can be available also. The biggest value for ppm rates is used as a quality factor.
Unit: ppm</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SEGMENT-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A value that determines the amount of bytes within the memory segment.
An ECU for AUTOSAR always contains at least one memory segment.
Within a single ECU different memory types and access types can be used simultaneously.
An ECU may consist of different parts that carry one or more memories.
Segment size is defined in the terms of Bytes. 
The overall amount of memory is the sum of all available memory segments. For different types of memory only the sum of the same type gives a useful overall sum.
Unit: Byte</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SEPARATE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Separate memories are required for safety-relevant functions and redundancy requirements.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Memory::ProvidedMemorySegment -->
  <xsd:complexType name="PROVIDED-MEMORY-SEGMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes one volatile memory segment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PROVIDED-MEMORY-SEGMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="PROVIDED-MEMORY-SEGMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PROVIDED-MEMORY-SEGMENT"/>
      <xsd:enumeration value="PROVIDED-NV-MEMORY-SEGMENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Memory::ProvidedNVMemorySegment -->
  <xsd:group name="PROVIDED-NV-MEMORY-SEGMENT">
    <xsd:annotation>
      <xsd:documentation>Describes one non-volatile memory segment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ENDURANCE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Program and erase cycles are a stress to the memory cell, therefore endurance is characterised by the number of erase/program cycles the memory can survive exceeding the prescribed failure rate.
Unit: No of cycles.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATA-RETENTION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Data retention time is the time between programming a sample of non-volatile memory and the observation of a prescribed failure rate when verifying the programmed pattern. The time is dependent on the chosen technology for the integrated memory cell.
Unit: Years</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MARGIN-READ-AVAILABLE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Additional to verify, all data are read back with a different set-up of the threshold of the sense amplifier of the programmed cell. With this method besides the logical correctness, the sufficient amount of electrical charges, which represents the stored data is checked. Furthermore the content of the memory and the correctness and the quality of the programming tools can be verified. Performing the margin read allow the prediction of the data retention. The feature of margin read is a characteristic of a memory, which is not available at all devices. Margin read is available for flash technology only.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SEGMENT-SIZE-ERASE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>For an erasable memory it's usually the same size of the segment as for the segment size which can be erased at a time. If the size of an erasable segment is different shall the size of the erasable segment be entered in the table.
Unit: Byte</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SEGMENT-SIZE-WRITE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Some memory types have not the same segment size as in the case when data is written to the memory. For example, a specific flash memory you must write 128 bytes once even if the segment size is 16 kBytes.
Unit: Byte</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Memory::ProvidedNVMemorySegment -->
  <xsd:complexType name="PROVIDED-NV-MEMORY-SEGMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes one non-volatile memory segment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PROVIDED-MEMORY-SEGMENT"/>
      <xsd:group ref="AR:PROVIDED-NV-MEMORY-SEGMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::PulseWidthPeripheral -->
  <xsd:group name="PULSE-WIDTH-PERIPHERAL">
    <xsd:annotation>
      <xsd:documentation>Common elements for PWM, PWD and CCU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="RESOLUTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the data width of the counter.
Unit: Bits</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Communication::QueuedReceiverComSpec -->
  <xsd:group name="QUEUED-RECEIVER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to queued receiving.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="QUEUE-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of queue for received events.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::QueuedReceiverComSpec -->
  <xsd:complexType name="QUEUED-RECEIVER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to queued receiving.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:RECEIVER-COM-SPEC"/>
      <xsd:group ref="AR:QUEUED-RECEIVER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::QueuedSenderComSpec -->
  <xsd:group name="QUEUED-SENDER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to distribution of  events (P-Port, sender-receiver interface and data element carries an "event").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Communication::QueuedSenderComSpec -->
  <xsd:complexType name="QUEUED-SENDER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to distribution of  events (P-Port, sender-receiver interface and data element carries an "event").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SENDER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::RPortComSpec -->
  <xsd:group name="R-PORT-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes of an R-Port. This class will contain attributes that are valid for all kinds of require-ports, independent of client-server or sender-receiver communication patterns.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class InstanceRefs::RPortInCompositionInstanceRef -->
  <xsd:group name="R-PORT-IN-COMPOSITION-INSTANCE-REF">
    <xsd:sequence>
      <xsd:element name="TARGET-R-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::RPortInCompositionInstanceRef -->
  <xsd:complexType name="R-PORT-IN-COMPOSITION-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:PORT-IN-COMPOSITION-TYPE-INSTANCE-REF"/>
      <xsd:group ref="AR:R-PORT-IN-COMPOSITION-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::RPortPrototype -->
  <xsd:group name="R-PORT-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>Component port requiring a certain port interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="REQUIRED-COM-SPECS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-COM-SPEC" type="AR:CLIENT-COM-SPEC"/>
            <xsd:element name="MODE-SWITCH-RECEIVER-COM-SPEC" type="AR:MODE-SWITCH-RECEIVER-COM-SPEC"/>
            <xsd:element name="QUEUED-RECEIVER-COM-SPEC" type="AR:QUEUED-RECEIVER-COM-SPEC"/>
            <xsd:element name="UNQUEUED-RECEIVER-COM-SPEC" type="AR:UNQUEUED-RECEIVER-COM-SPEC"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-INTERFACE-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-INTERFACE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Components::RPortPrototype -->
  <xsd:complexType name="R-PORT-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Component port requiring a certain port interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:PORT-PROTOTYPE"/>
      <xsd:group ref="AR:R-PORT-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="R-PORT-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="R-PORT-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class RTEEvents::RTEEvent -->
  <xsd:group name="RTE-EVENT">
    <xsd:annotation>
      <xsd:documentation>Abstract base class for all RTE-related events</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DISABLED-IN-MODE-IREFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="DISABLED-IN-MODE-IREF" type="AR:RTE-EVENT--DISABLED-IN-MODE-IREF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="START-ON-EVENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:RUNNABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="RTE-EVENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT"/>
      <xsd:enumeration value="DATA-RECEIVE-ERROR-EVENT"/>
      <xsd:enumeration value="DATA-RECEIVED-EVENT"/>
      <xsd:enumeration value="DATA-SEND-COMPLETED-EVENT"/>
      <xsd:enumeration value="EXTERNAL-TRIGGER-OCCURRED-EVENT"/>
      <xsd:enumeration value="INTERNAL-TRIGGER-OCCURRED-EVENT"/>
      <xsd:enumeration value="MODE-SWITCHED-ACK-EVENT"/>
      <xsd:enumeration value="OPERATION-INVOKED-EVENT"/>
      <xsd:enumeration value="SWC-MODE-SWITCH-EVENT"/>
      <xsd:enumeration value="TIMING-EVENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class _instanceRef::RTEEvent_disabledInMode -->
  <xsd:group name="RTE-EVENT--DISABLED-IN-MODE-IREF">
    <xsd:sequence>
      <xsd:element name="R-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::RTEEvent_disabledInMode -->
  <xsd:complexType name="RTE-EVENT--DISABLED-IN-MODE-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:RTE-EVENT--DISABLED-IN-MODE-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::ReceiverAnnotation -->
  <xsd:group name="RECEIVER-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation of a receiver port, specifying properties of data elements that don't affect communication or generation of the RTE. The given attributes are requirements on the required data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SIGNAL-AGE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The maximum allowed age of the signal since it was originally read by a sensor. This is a requirement specified on the receiver side.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::ReceiverAnnotation -->
  <xsd:complexType name="RECEIVER-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation of a receiver port, specifying properties of data elements that don't affect communication or generation of the RTE. The given attributes are requirements on the required data.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:SENDER-RECEIVER-ANNOTATION"/>
      <xsd:group ref="AR:RECEIVER-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::ReceiverComSpec -->
  <xsd:group name="RECEIVER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Receiver specific communication attributes (RPortPrototype typed by SenderReceiverInterface).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FILTER" type="AR:DATA-FILTER" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class Constants::RecordValueField -->
  <xsd:group name="RECORD-VALUE-FIELD">
    <xsd:annotation>
      <xsd:documentation>Contains a value specification for a single record field. This class is used to identify via its ShortName the record element of the target type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE-SPEC" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::RecordValueField -->
  <xsd:complexType name="RECORD-VALUE-FIELD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Contains a value specification for a single record field. This class is used to identify via its ShortName the record element of the target type.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RECORD-VALUE-FIELD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Constants::RecordValueSpecification -->
  <xsd:group name="RECORD-VALUE-SPECIFICATION">
    <xsd:annotation>
      <xsd:documentation>Specifies the values for a record.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FIELDS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RECORD-VALUE-FIELD" type="AR:RECORD-VALUE-FIELD"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Constants::RecordValueSpecification -->
  <xsd:complexType name="RECORD-VALUE-SPECIFICATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the values for a record.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RECORD-VALUE-SPECIFICATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::ReferenceParamDef -->
  <xsd:group name="REFERENCE-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Specify references within the ECU Configuration Description between parameter containers.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESTINATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PARAM-CONF-CONTAINER-DEF--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::ReferenceParamDef -->
  <xsd:complexType name="REFERENCE-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specify references within the ECU Configuration Description between parameter containers.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:REFERENCE-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::ReferenceValue -->
  <xsd:group name="REFERENCE-VALUE">
    <xsd:annotation>
      <xsd:documentation>Used to represent a configuration value that has a parameter definition of type ConfigReference (used for all of its specializations excluding InstanceReferenceParamDef).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:IDENTIFIABLE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::ReferenceValue -->
  <xsd:complexType name="REFERENCE-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Used to represent a configuration value that has a parameter definition of type ConfigReference (used for all of its specializations excluding InstanceReferenceParamDef).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:CONFIG-REFERENCE-VALUE"/>
      <xsd:group ref="AR:REFERENCE-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Identifiable::Referrable -->
  <xsd:group name="REFERRABLE">
    <xsd:annotation>
      <xsd:documentation>Instances of this class can be referred to by their identifier (while adhering to namespace borders).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SHORT-NAME" type="AR:IDENTIFIER">
        <xsd:annotation>
          <xsd:documentation>Use &lt;shortName&gt; to generate a short name for the context element, which enables it to be ** .</xsd:documentation>
          <xsd:appinfo source="tags">xml.enforceMinMultiplicity="true";xml.sequenceOffset="-100"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="LONG-NAME" type="AR:MULTILANGUAGE-LONG-NAME" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Identifiable::Referrable -->
  <xsd:complexType name="REFERRABLE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Instances of this class can be referred to by their identifier (while adhering to namespace borders).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <xsd:simpleType name="REFERRABLE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ADC"/>
      <xsd:enumeration value="AR-PACKAGE"/>
      <xsd:enumeration value="ACTUATOR-HW"/>
      <xsd:enumeration value="ADD-INFO-PARAM-DEF"/>
      <xsd:enumeration value="APPLICATION-ARRAY-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-ARRAY-ELEMENT"/>
      <xsd:enumeration value="APPLICATION-ERROR"/>
      <xsd:enumeration value="APPLICATION-PRIMITIVE-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-DATA-TYPE"/>
      <xsd:enumeration value="APPLICATION-RECORD-ELEMENT"/>
      <xsd:enumeration value="APPLICATION-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="ARGUMENT-DATA-PROTOTYPE"/>
      <xsd:enumeration value="ARRAY-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="ASSEMBLY-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="ASSEMBLY-HW-CONNECTION"/>
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-POINT"/>
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT"/>
      <xsd:enumeration value="ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT"/>
      <xsd:enumeration value="BOOLEAN-PARAM-DEF"/>
      <xsd:enumeration value="BSW-DEBUG-DATA-ELEMENT"/>
      <xsd:enumeration value="BSW-DEBUG-INFO"/>
      <xsd:enumeration value="BSW-EXTERNAL-TRIGGER-OCCURED-EVENT"/>
      <xsd:enumeration value="BSW-IMPLEMENTATION"/>
      <xsd:enumeration value="BSW-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="BSW-INTERNAL-TRIGGER-OCCURED-EVENT"/>
      <xsd:enumeration value="BSW-INTERRUPT-ENTITY"/>
      <xsd:enumeration value="BSW-MODE-SWITCH-EVENT"/>
      <xsd:enumeration value="BSW-MODULE-DEPENDENCY"/>
      <xsd:enumeration value="BSW-MODULE-DESCRIPTION"/>
      <xsd:enumeration value="BSW-MODULE-ENTITY"/>
      <xsd:enumeration value="BSW-MODULE-ENTRY"/>
      <xsd:enumeration value="BSW-MODULE-TIMING"/>
      <xsd:enumeration value="BSW-SCHEDULABLE-ENTITY"/>
      <xsd:enumeration value="BSW-TIMING-EVENT"/>
      <xsd:enumeration value="CCU"/>
      <xsd:enumeration value="CAN-CLUSTER"/>
      <xsd:enumeration value="CAN-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="CAN-FRAME-TRIGGERING"/>
      <xsd:enumeration value="CAN-NM-CLUSTER"/>
      <xsd:enumeration value="CAN-NM-NODE"/>
      <xsd:enumeration value="CAN-TP-CONFIG"/>
      <xsd:enumeration value="CAN-TP-NODE"/>
      <xsd:enumeration value="CAPTION"/>
      <xsd:enumeration value="CERTIFIED-SYSTEMCONST-VALUE-SET"/>
      <xsd:enumeration value="CHAPTER"/>
      <xsd:enumeration value="CHOICE-CONTAINER-DEF"/>
      <xsd:enumeration value="CHOICE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE"/>
      <xsd:enumeration value="CLIENT-SERVER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="CLOCK"/>
      <xsd:enumeration value="CODE"/>
      <xsd:enumeration value="COLLECTION"/>
      <xsd:enumeration value="COM-MGR-USER-NEEDS"/>
      <xsd:enumeration value="COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="COMMUNICATION-HW-PORT"/>
      <xsd:enumeration value="COMMUNICATION-PERIPHERAL"/>
      <xsd:enumeration value="COMMUNICATION-PROTOCOL"/>
      <xsd:enumeration value="COMMUNICATION-TRANSCEIVER"/>
      <xsd:enumeration value="COMPILER"/>
      <xsd:enumeration value="COMPLEX-DEVICE-DRIVER-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPONENT-PROTOTYPE"/>
      <xsd:enumeration value="COMPOSITION-COMPONENT-TYPE"/>
      <xsd:enumeration value="COMPU-METHOD"/>
      <xsd:enumeration value="CONSTANT-REFERENCE"/>
      <xsd:enumeration value="CONSTANT-SPECIFICATION"/>
      <xsd:enumeration value="CONTAINER"/>
      <xsd:enumeration value="DAC"/>
      <xsd:enumeration value="DATA-CONSTR"/>
      <xsd:enumeration value="DATA-N-PDU"/>
      <xsd:enumeration value="DATA-RECEIVE-ERROR-EVENT"/>
      <xsd:enumeration value="DATA-RECEIVED-EVENT"/>
      <xsd:enumeration value="DATA-SEND-COMPLETED-EVENT"/>
      <xsd:enumeration value="DATA-TYPE-MAPPING-SET"/>
      <xsd:enumeration value="DCM-I-PDU"/>
      <xsd:enumeration value="DEF-ITEM"/>
      <xsd:enumeration value="DELEGATION-CONNECTOR-PROTOTYPE"/>
      <xsd:enumeration value="DELEGATION-HW-CONNECTION"/>
      <xsd:enumeration value="DEPENDENCY-ON-ARTIFACT"/>
      <xsd:enumeration value="DIAGNOSTIC-COMMUNICATION-NEEDS"/>
      <xsd:enumeration value="DIAGNOSTIC-EVENT-NEEDS"/>
      <xsd:enumeration value="DIGITAL-IO"/>
      <xsd:enumeration value="DISCRETE-ECU-ELECTRONICS"/>
      <xsd:enumeration value="DISPLAY-HW"/>
      <xsd:enumeration value="DOCUMENTATION"/>
      <xsd:enumeration value="ECU"/>
      <xsd:enumeration value="ECU-COMMUNICATION-PORT"/>
      <xsd:enumeration value="ECU-MAPPING"/>
      <xsd:enumeration value="ECU-ABSTRACTION-COMPONENT-TYPE"/>
      <xsd:enumeration value="ECU-CONFIGURATION"/>
      <xsd:enumeration value="ECU-INSTANCE"/>
      <xsd:enumeration value="ECU-PARAMETER-DEFINITION"/>
      <xsd:enumeration value="ECU-STATE-MGR-USER-NEEDS"/>
      <xsd:enumeration value="ECU-TIMING"/>
      <xsd:enumeration value="ENUMERATION-LITERAL-DEF"/>
      <xsd:enumeration value="ENUMERATION-PARAM-DEF"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CLUSTER"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="ETHERNET-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="ETHERNET-FRAME-TRIGGERING"/>
      <xsd:enumeration value="EXCLUSIVE-AREA"/>
      <xsd:enumeration value="EXECUTION-TIME"/>
      <xsd:enumeration value="EXTERNAL-TRIGGER-OCCURRED-EVENT"/>
      <xsd:enumeration value="FLAT-MAP"/>
      <xsd:enumeration value="FLEXRAY-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="FLEXRAY-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="FLEXRAY-FRAME-TRIGGERING"/>
      <xsd:enumeration value="FLEXRAY-NM-CLUSTER"/>
      <xsd:enumeration value="FLEXRAY-NM-NODE"/>
      <xsd:enumeration value="FLEXRAY-PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="FLEXRAY-TP-CONFIG"/>
      <xsd:enumeration value="FLEXRAY-TP-CONNECTION-CONTROL"/>
      <xsd:enumeration value="FLEXRAY-TP-NODE"/>
      <xsd:enumeration value="FLOAT-PARAM-DEF"/>
      <xsd:enumeration value="FLOW-CONTROL-N-PDU"/>
      <xsd:enumeration value="FOREIGN-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="FORMULA-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="FRAME"/>
      <xsd:enumeration value="FRAME-PORT"/>
      <xsd:enumeration value="FUNCTION-INHIBITION-NEEDS"/>
      <xsd:enumeration value="FUNCTION-NAME-DEF"/>
      <xsd:enumeration value="GATEWAY"/>
      <xsd:enumeration value="GENERAL-PARAMETER"/>
      <xsd:enumeration value="HW-CONTAINER"/>
      <xsd:enumeration value="HW-PIN"/>
      <xsd:enumeration value="HW-PORT"/>
      <xsd:enumeration value="I-PDU-GROUP"/>
      <xsd:enumeration value="I-PDU-PORT"/>
      <xsd:enumeration value="I-PDU-TRIGGERING"/>
      <xsd:enumeration value="I-SIGNAL"/>
      <xsd:enumeration value="I-SIGNAL-TO-I-PDU-MAPPING"/>
      <xsd:enumeration value="I-SIGNAL-TRIGGERING"/>
      <xsd:enumeration value="IMPLEMENTATION-DATA-TYPE"/>
      <xsd:enumeration value="IMPLEMENTION-DATA-TYPE-ELEMENT"/>
      <xsd:enumeration value="INSTANCE-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="INTEGER-PARAM-DEF"/>
      <xsd:enumeration value="INTERNAL-TRIGGER-OCCURRED-EVENT"/>
      <xsd:enumeration value="INTERNAL-TRIGGERING-POINT"/>
      <xsd:enumeration value="INTERRUPT-CONSUME-HW-PORT"/>
      <xsd:enumeration value="INTERRUPT-PRODUCE-HW-PORT"/>
      <xsd:enumeration value="J-1939-TP-CONFIG"/>
      <xsd:enumeration value="J-1939-TP-NODE"/>
      <xsd:enumeration value="LIN-CLUSTER"/>
      <xsd:enumeration value="LIN-COMMUNICATION-CONNECTOR"/>
      <xsd:enumeration value="LIN-EVENT-TRIGGERED-FRAME"/>
      <xsd:enumeration value="LIN-FRAME-TRIGGERING"/>
      <xsd:enumeration value="LIN-MASTER"/>
      <xsd:enumeration value="LIN-PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="LIN-SCHEDULE-TABLE"/>
      <xsd:enumeration value="LIN-SLAVE"/>
      <xsd:enumeration value="LIN-SPORADIC-FRAME"/>
      <xsd:enumeration value="LIN-TP-CONFIG"/>
      <xsd:enumeration value="LIN-TP-NODE"/>
      <xsd:enumeration value="LIN-UNCONDITIONAL-FRAME"/>
      <xsd:enumeration value="LINKER"/>
      <xsd:enumeration value="LINKER-SYMBOL-DEF"/>
      <xsd:enumeration value="MEASURED-EXECUTION-TIME"/>
      <xsd:enumeration value="MEASURED-HEAP-USAGE"/>
      <xsd:enumeration value="MEASURED-STACK-USAGE"/>
      <xsd:enumeration value="MEMORY-MAPPED-ASSEMBLY-HW-CONNECTION"/>
      <xsd:enumeration value="MEMORY-MAPPED-DELEGATION-HW-CONNECTION"/>
      <xsd:enumeration value="MEMORY-MAPPED-HW-PORT"/>
      <xsd:enumeration value="MEMORY-SECTION"/>
      <xsd:enumeration value="MODE-DECLARATION"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP"/>
      <xsd:enumeration value="MODE-DECLARATION-GROUP-PROTOTYPE"/>
      <xsd:enumeration value="MODE-INTERFACE"/>
      <xsd:enumeration value="MODE-INTERFACE-MAPPING"/>
      <xsd:enumeration value="MODE-SWITCH-POINT"/>
      <xsd:enumeration value="MODE-SWITCHED-ACK-EVENT"/>
      <xsd:enumeration value="MODULE-CONFIGURATION"/>
      <xsd:enumeration value="MODULE-DEF"/>
      <xsd:enumeration value="MULTILINE-STRING-PARAM-DEF"/>
      <xsd:enumeration value="MULTIPLEXED-I-PDU"/>
      <xsd:enumeration value="NM-CONFIG"/>
      <xsd:enumeration value="NM-ECU"/>
      <xsd:enumeration value="NM-PDU"/>
      <xsd:enumeration value="NV-BLOCK-COMPONENT-TYPE"/>
      <xsd:enumeration value="NV-BLOCK-DESCRIPTOR"/>
      <xsd:enumeration value="NV-BLOCK-NEEDS"/>
      <xsd:enumeration value="NV-DATA-INTERFACE"/>
      <xsd:enumeration value="OBD-CONTROL-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-INFO-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-MONITOR-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-PID-SERVICE-NEEDS"/>
      <xsd:enumeration value="OBD-RATIO-SERVICE-NEEDS"/>
      <xsd:enumeration value="OPERATION-INVOKED-EVENT"/>
      <xsd:enumeration value="OPERATION-PROTOTYPE"/>
      <xsd:enumeration value="OSCILLATOR"/>
      <xsd:enumeration value="P-PORT-PROTOTYPE"/>
      <xsd:enumeration value="PWD"/>
      <xsd:enumeration value="PWM"/>
      <xsd:enumeration value="PARAM-CONF-CONTAINER-DEF"/>
      <xsd:enumeration value="PARAMETER-ACCESS"/>
      <xsd:enumeration value="PARAMETER-COMPONENT-TYPE"/>
      <xsd:enumeration value="PARAMETER-DATA-PROTOTYPE"/>
      <xsd:enumeration value="PARAMETER-INTERFACE"/>
      <xsd:enumeration value="PDU-TO-FRAME-MAPPING"/>
      <xsd:enumeration value="PER-INSTANCE-MEMORY"/>
      <xsd:enumeration value="PERIPHERAL"/>
      <xsd:enumeration value="PERIPHERAL-HW-PORT"/>
      <xsd:enumeration value="PHYSICAL-CHANNEL"/>
      <xsd:enumeration value="PHYSICAL-DIMENSION"/>
      <xsd:enumeration value="PORT-INTERFACE-MAPPING-GROUP"/>
      <xsd:enumeration value="POST-BUILD-VARIANT-CRITERION"/>
      <xsd:enumeration value="POWER-DRIVER-HW-ELEMENT"/>
      <xsd:enumeration value="POWER-DRIVER-HW-PORT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-ELEMENT"/>
      <xsd:enumeration value="POWER-SUPPLY-HW-PORT"/>
      <xsd:enumeration value="PRIMITIVE-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="PROCESSING-UNIT"/>
      <xsd:enumeration value="PROVIDED-MEMORY-SEGMENT"/>
      <xsd:enumeration value="PROVIDED-NV-MEMORY-SEGMENT"/>
      <xsd:enumeration value="R-PORT-PROTOTYPE"/>
      <xsd:enumeration value="RECORD-VALUE-FIELD"/>
      <xsd:enumeration value="RECORD-VALUE-SPECIFICATION"/>
      <xsd:enumeration value="REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="REFERRABLE"/>
      <xsd:enumeration value="RESOURCE-CONSUMPTION"/>
      <xsd:enumeration value="ROUGH-ESTIMATE-HEAP-USAGE"/>
      <xsd:enumeration value="ROUGH-ESTIMATE-OF-EXECUTION-TIME"/>
      <xsd:enumeration value="ROUGH-ESTIMATE-STACK-USAGE"/>
      <xsd:enumeration value="RUNNABLE-ENTITY"/>
      <xsd:enumeration value="SDG-CAPTION"/>
      <xsd:enumeration value="SENDER-RECEIVER-INTERFACE"/>
      <xsd:enumeration value="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SENSOR-HW"/>
      <xsd:enumeration value="SERVICE-COMPONENT-TYPE"/>
      <xsd:enumeration value="SERVICE-NEEDS"/>
      <xsd:enumeration value="SIGNAL-I-PDU"/>
      <xsd:enumeration value="SIGNAL-PORT"/>
      <xsd:enumeration value="SIMULATED-EXECUTION-TIME"/>
      <xsd:enumeration value="SOFTWARE-COMPONENT-DOCUMENTATION"/>
      <xsd:enumeration value="SOFTWARE-COMPOSITION"/>
      <xsd:enumeration value="STD"/>
      <xsd:enumeration value="STRING-PARAM-DEF"/>
      <xsd:enumeration value="SUPERVISED-ENTITY-NEEDS"/>
      <xsd:enumeration value="SUPPORTED-DATA-TYPE"/>
      <xsd:enumeration value="SW-ADDR-METHOD"/>
      <xsd:enumeration value="SW-AXIS-TYPE"/>
      <xsd:enumeration value="SW-BASE-TYPE"/>
      <xsd:enumeration value="SW-CALPRM-PROTOTYPE"/>
      <xsd:enumeration value="SW-CLASS-ATTR-IMPL"/>
      <xsd:enumeration value="SW-CLASS-INSTANCE"/>
      <xsd:enumeration value="SW-CLASS-PROTOTYPE"/>
      <xsd:enumeration value="SW-CODE-SYNTAX"/>
      <xsd:enumeration value="SW-GENERIC-AXIS-PARAM-TYPE"/>
      <xsd:enumeration value="SW-RECORD-LAYOUT"/>
      <xsd:enumeration value="SW-SERVICE"/>
      <xsd:enumeration value="SW-SERVICE-ARG"/>
      <xsd:enumeration value="SW-SERVICE-PROTOTYPE"/>
      <xsd:enumeration value="SW-SYSTEMCONST"/>
      <xsd:enumeration value="SW-SYSTEMCONSTANT-VALUE-SET"/>
      <xsd:enumeration value="SW-VARIABLE-PROTOTYPE"/>
      <xsd:enumeration value="SWC-IMPLEMENTATION"/>
      <xsd:enumeration value="SWC-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="SWC-MODE-SWITCH-EVENT"/>
      <xsd:enumeration value="SWC-SERVICE-DEPENDENCY"/>
      <xsd:enumeration value="SWC-TIMING"/>
      <xsd:enumeration value="SWC-TO-ECU-MAPPING"/>
      <xsd:enumeration value="SWC-TO-IMPL-MAPPING"/>
      <xsd:enumeration value="SYMBOLIC-NAME-REFERENCE-PARAM-DEF"/>
      <xsd:enumeration value="SYNCHRONOUS-SERVER-CALL-POINT"/>
      <xsd:enumeration value="SYSTEM"/>
      <xsd:enumeration value="SYSTEM-MAPPING"/>
      <xsd:enumeration value="SYSTEM-SIGNAL"/>
      <xsd:enumeration value="SYSTEM-SIGNAL-GROUP"/>
      <xsd:enumeration value="SYSTEM-TIMING"/>
      <xsd:enumeration value="TD-EVENT-BSW"/>
      <xsd:enumeration value="TD-EVENT-BSW-BEHAVIOR"/>
      <xsd:enumeration value="TD-EVENT-DATA-ELEMENT"/>
      <xsd:enumeration value="TD-EVENT-FR-CLUSTER-CYCLE-START"/>
      <xsd:enumeration value="TD-EVENT-FRAME"/>
      <xsd:enumeration value="TD-EVENT-I-PDU"/>
      <xsd:enumeration value="TD-EVENT-I-SIGNAL"/>
      <xsd:enumeration value="TD-EVENT-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="TD-EVENT-OPERATION"/>
      <xsd:enumeration value="TD-EVENT-TT-CAN-CYCLE-START"/>
      <xsd:enumeration value="TIMER"/>
      <xsd:enumeration value="TIMING-DESCRIPTION-EVENT-CHAIN"/>
      <xsd:enumeration value="TIMING-EVENT"/>
      <xsd:enumeration value="TOPIC-1"/>
      <xsd:enumeration value="TP-ADDRESS"/>
      <xsd:enumeration value="TRIGGER"/>
      <xsd:enumeration value="TRIGGER-INTERFACE"/>
      <xsd:enumeration value="TRIGGER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="TTCAN-CLUSTER"/>
      <xsd:enumeration value="TTCAN-COMMUNICATION-CONTROLLER"/>
      <xsd:enumeration value="UDP-NM-CLUSTER"/>
      <xsd:enumeration value="UDP-NM-NODE"/>
      <xsd:enumeration value="UNIT"/>
      <xsd:enumeration value="UNIT-GROUP"/>
      <xsd:enumeration value="VARIABLE-ACCESS"/>
      <xsd:enumeration value="VARIABLE-AND-PARAMETER-INTERFACE-MAPPING"/>
      <xsd:enumeration value="VARIABLE-DATA-PROTOTYPE"/>
      <xsd:enumeration value="VFB-TIMING"/>
      <xsd:enumeration value="WAIT-POINT"/>
      <xsd:enumeration value="WATCH-DOG"/>
      <xsd:enumeration value="WORST-CASE-EXECUTION-TIME"/>
      <xsd:enumeration value="WORST-CASE-HEAP-USAGE"/>
      <xsd:enumeration value="WORST-CASE-STACK-USAGE"/>
      <xsd:enumeration value="XCP-PDU"/>
      <xsd:enumeration value="XDOC"/>
      <xsd:enumeration value="XFILE"/>
      <xsd:enumeration value="XREF-TARGET"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ProcessingUnit::Register -->
  <xsd:group name="REGISTER">
    <xsd:annotation>
      <xsd:documentation>The user available registers are a part of the programming model that consists of: Memory organisation and segmentation, Data types, Registers, Instruction format, Operand selection, Interrupts and exceptions.
Basically the register model contains the registers that are interest to the applications programmer; these registers can be grouped into three basic categories:
- General registers: These general-purpose registers are used primarily to contain operands for arithmetic and logical operations.
- Segment registers: These special-purpose registers permit software designers to choose either a flat or segmented model of memory organisation. These registers determine, at any given time, which segments of memory are currently addressable.
- Status and instruction registers: These special-purpose registers are used to record and alter certain aspects of the processor state.

The register model is only valuable data for low level programming, e.g assembler programming. The register model, along with the available OP codes takes influence on the performance of the PU. The most general impact of the register model to software is number of registers which have to be handled during interrupts or function calls.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COUNT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes how many registers are available of the specified type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPE" type="AR:REGISTER-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the kind of register.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ProcessingUnit::Register -->
  <xsd:complexType name="REGISTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The user available registers are a part of the programming model that consists of: Memory organisation and segmentation, Data types, Registers, Instruction format, Operand selection, Interrupts and exceptions.
Basically the register model contains the registers that are interest to the applications programmer; these registers can be grouped into three basic categories:
- General registers: These general-purpose registers are used primarily to contain operands for arithmetic and logical operations.
- Segment registers: These special-purpose registers permit software designers to choose either a flat or segmented model of memory organisation. These registers determine, at any given time, which segments of memory are currently addressable.
- Status and instruction registers: These special-purpose registers are used to record and alter certain aspects of the processor state.

The register model is only valuable data for low level programming, e.g assembler programming. The register model, along with the available OP codes takes influence on the performance of the PU. The most general impact of the register model to software is number of registers which have to be handled during interrupts or function calls.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REGISTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::RelativeTolerance -->
  <xsd:group name="RELATIVE-TOLERANCE">
    <xsd:annotation>
      <xsd:documentation>Maximum allowable deviation</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="RELATIVE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum allowable deviation in percent</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::RelativeTolerance -->
  <xsd:complexType name="RELATIVE-TOLERANCE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Maximum allowable deviation</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:RELATIVE-TOLERANCE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Annotation::Remark -->
  <xsd:group name="REMARK">
    <xsd:annotation>
      <xsd:documentation>&lt;remark&gt; is used for comments e.g. on the specific calibration state. The remark can be a regular paragraph or a preformatted text.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__REMARK_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="P" type="AR:MULTI-LANGUAGE-PARAGRAPH" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="VERBATIM" type="AR:MULTI-LANGUAGE-VERBATIM" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class Annotation::Remark -->
  <xsd:complexType name="REMARK" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>&lt;remark&gt; is used for comments e.g. on the specific calibration state. The remark can be a regular paragraph or a preformatted text.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__REMARK_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:REMARK"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ResourceConsumption::ResourceConsumption -->
  <xsd:group name="RESOURCE-CONSUMPTION">
    <xsd:annotation>
      <xsd:documentation>Description of consumed resources by one implementation of a software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EXECUTION-TIMES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="EXECUTION-TIME" type="AR:EXECUTION-TIME"/>
            <xsd:element name="MEASURED-EXECUTION-TIME" type="AR:MEASURED-EXECUTION-TIME"/>
            <xsd:element name="ROUGH-ESTIMATE-OF-EXECUTION-TIME" type="AR:ROUGH-ESTIMATE-OF-EXECUTION-TIME"/>
            <xsd:element name="SIMULATED-EXECUTION-TIME" type="AR:SIMULATED-EXECUTION-TIME"/>
            <xsd:element name="WORST-CASE-EXECUTION-TIME" type="AR:WORST-CASE-EXECUTION-TIME"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="HEAP-USAGES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MEASURED-HEAP-USAGE" type="AR:MEASURED-HEAP-USAGE"/>
            <xsd:element name="ROUGH-ESTIMATE-HEAP-USAGE" type="AR:ROUGH-ESTIMATE-HEAP-USAGE"/>
            <xsd:element name="WORST-CASE-HEAP-USAGE" type="AR:WORST-CASE-HEAP-USAGE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MEMORY-SECTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MEMORY-SECTION" type="AR:MEMORY-SECTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="STACK-USAGES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MEASURED-STACK-USAGE" type="AR:MEASURED-STACK-USAGE"/>
            <xsd:element name="ROUGH-ESTIMATE-STACK-USAGE" type="AR:ROUGH-ESTIMATE-STACK-USAGE"/>
            <xsd:element name="WORST-CASE-STACK-USAGE" type="AR:WORST-CASE-STACK-USAGE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ResourceConsumption::ResourceConsumption -->
  <xsd:complexType name="RESOURCE-CONSUMPTION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Description of consumed resources by one implementation of a software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RESOURCE-CONSUMPTION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceMapping::RoleBasedDataAssignment -->
  <xsd:group name="ROLE-BASED-DATA-ASSIGNMENT">
    <xsd:annotation>
      <xsd:documentation>This class specifies an assignment of a role to a particular data object in the InternalBehavior of a software component in the context of an AUTOSAR Services. With this assignment, the role of the data can be mapped to a specific ServiceNeeds element, so that a tool is able to create the correct access. This is only required if the data are not accessed via ports, namely in the case of mirror and default data blocks for the NvM Service.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ROLE" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the role of the assigned data in the given context, for example for an Nv block it is used to dsitinguish between an mirror block and a ROM default block. Possible values need to be specified on M1 level.

The following values are standardized:
* "ramMirror" indicates data to be used as a mirror for an Nv block.
* "defaultData" indicates constant data to be used as default in the context of this ServiceNeeds, e.g. for an Nv block.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="USED-DATA-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="USED-PARAMETER-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PARAMETER-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="USED-PIM-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PER-INSTANCE-MEMORY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceMapping::RoleBasedDataAssignment -->
  <xsd:complexType name="ROLE-BASED-DATA-ASSIGNMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class specifies an assignment of a role to a particular data object in the InternalBehavior of a software component in the context of an AUTOSAR Services. With this assignment, the role of the data can be mapped to a specific ServiceNeeds element, so that a tool is able to create the correct access. This is only required if the data are not accessed via ports, namely in the case of mirror and default data blocks for the NvM Service.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ROLE-BASED-DATA-ASSIGNMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceMapping::RoleBasedPortAssignment -->
  <xsd:group name="ROLE-BASED-PORT-ASSIGNMENT">
    <xsd:annotation>
      <xsd:documentation>This class specifies an assignment of a role to a particular service port (R- or P-Port) of an AtomicSoftwareComponent. With this assignment, the role of the service port can be mapped to a specific ServiceNeeds element, so that a tool is able to create the correct connector.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ROLE" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the role of the assigned Port in the given context.

The value must be a name of a PortInterface as standardized in the Software Specification of the related AUTOSAR Service.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceMapping::RoleBasedPortAssignment -->
  <xsd:complexType name="ROLE-BASED-PORT-ASSIGNMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class specifies an assignment of a role to a particular service port (R- or P-Port) of an AtomicSoftwareComponent. With this assignment, the role of the service port can be mapped to a specific ServiceNeeds element, so that a tool is able to create the correct connector.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ROLE-BASED-PORT-ASSIGNMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class HeapUsage::RoughEstimateHeapUsage -->
  <xsd:group name="ROUGH-ESTIMATE-HEAP-USAGE">
    <xsd:annotation>
      <xsd:documentation>Rough estimation of the heap usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Rough estimate of the heap usage.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class HeapUsage::RoughEstimateHeapUsage -->
  <xsd:complexType name="ROUGH-ESTIMATE-HEAP-USAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Rough estimation of the heap usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HEAP-USAGE"/>
      <xsd:group ref="AR:ROUGH-ESTIMATE-HEAP-USAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ExecutionTime::RoughEstimateOfExecutionTime -->
  <xsd:group name="ROUGH-ESTIMATE-OF-EXECUTION-TIME">
    <xsd:annotation>
      <xsd:documentation>Provides a description of a rough estimate on the ExecutionTime.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESCRIPTION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Provides description on the rough estimate of the ExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::RoughEstimateOfExecutionTime -->
  <xsd:complexType name="ROUGH-ESTIMATE-OF-EXECUTION-TIME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Provides a description of a rough estimate on the ExecutionTime.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:EXECUTION-TIME"/>
      <xsd:group ref="AR:ROUGH-ESTIMATE-OF-EXECUTION-TIME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class StackUsage::RoughEstimateStackUsage -->
  <xsd:group name="ROUGH-ESTIMATE-STACK-USAGE">
    <xsd:annotation>
      <xsd:documentation>Rough estimation of the stack usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Rough estimate of the stack usage.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class StackUsage::RoughEstimateStackUsage -->
  <xsd:complexType name="ROUGH-ESTIMATE-STACK-USAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Rough estimation of the stack usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:STACK-USAGE"/>
      <xsd:group ref="AR:ROUGH-ESTIMATE-STACK-USAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class OasisExchangeTable::Row -->
  <xsd:group name="ROW">
    <xsd:annotation>
      <xsd:documentation>Use &lt;row&gt; , to create a row in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ROW_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ENTRY" type="AR:ENTRY" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class OasisExchangeTable::Row -->
  <xsd:attributeGroup name="ROW">
    <xsd:annotation>
      <xsd:documentation>Use &lt;row&gt; , to create a row in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ROW_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="ROWSEP" type="xsd:string"/>
    <xsd:attribute name="VALIGN" type="AR:VALIGN-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates how the cells in the rows shall be aligned. Default is inherited from tbody, otherwise it is "TOP"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="TOP";msr.id="ROW_TYPE__ROW_TYPE__VALIGN";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class OasisExchangeTable::Row -->
  <xsd:complexType name="ROW" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;row&gt; , to create a row in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__ROW_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:ROW"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:ROW"/>
  </xsd:complexType>
  <!-- element group for class SwcInternalBehavior::RunnableEntity -->
  <xsd:group name="RUNNABLE-ENTITY">
    <xsd:annotation>
      <xsd:documentation>The runnable entities are the smallest code-fragments that are provided by the component and are executed in the RTE. Runnables are for instance set up to respond to data reception or operation invocation on a server.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ASYNCHRONOUS-SERVER-CALL-RESULT-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ASYNCHRONOUS-SERVER-CALL-RESULT-POINT" type="AR:ASYNCHRONOUS-SERVER-CALL-RESULT-POINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CAN-BE-INVOKED-CONCURRENTLY" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Normally, this is FALSE.
When this is TRUE, it is allowed that this runnable entity is invoked concurrently (even for one instance of the SW-C), which implies that it is the responsibility of the implementation of the runnable to take care of this form of concurrency.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CAN-ENTER-EXCLUSIVE-AREA-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CAN-ENTER-EXCLUSIVE-AREA-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:EXCLUSIVE-AREA--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-READ-ACCESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-RECEIVE-POINT-BY-ARGUMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-RECEIVE-POINT-BY-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-SEND-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-WRITE-ACCESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EXTERNAL-TRIGGERING-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="EXTERNAL-TRIGGERING-POINT" type="AR:EXTERNAL-TRIGGERING-POINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INTERNAL-TRIGGERING-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INTERNAL-TRIGGERING-POINT" type="AR:INTERNAL-TRIGGERING-POINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MINIMUM-START-INTERVAL" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the time in seconds which two starts of a RunnableEntity are guaranteed to be separated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MODE-SWITCH-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="MODE-SWITCH-POINT" type="AR:MODE-SWITCH-POINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PARAMETER-ACCESSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-ACCESS" type="AR:PARAMETER-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="READ-LOCAL-VARIABLES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RUNS-INSIDE-EXCLUSIVE-AREA-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RUNS-INSIDE-EXCLUSIVE-AREA-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:EXCLUSIVE-AREA--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SERVER-CALL-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ASYNCHRONOUS-SERVER-CALL-POINT" type="AR:ASYNCHRONOUS-SERVER-CALL-POINT"/>
            <xsd:element name="SYNCHRONOUS-SERVER-CALL-POINT" type="AR:SYNCHRONOUS-SERVER-CALL-POINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SYMBOL" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The symbol describing this runnable's entry point. This is considered the API of the runnable and is required during the RTE contract phase.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="WAIT-POINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="WAIT-POINT" type="AR:WAIT-POINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="WRITTEN-LOCAL-VARIABLES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-ACCESS" type="AR:VARIABLE-ACCESS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcInternalBehavior::RunnableEntity -->
  <xsd:complexType name="RUNNABLE-ENTITY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The runnable entities are the smallest code-fragments that are provided by the component and are executed in the RTE. Runnables are for instance set up to respond to data reception or operation invocation on a server.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RUNNABLE-ENTITY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="RUNNABLE-ENTITY--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RUNNABLE-ENTITY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LinCommunication::SaveConfigurationEntry -->
  <xsd:group name="SAVE-CONFIGURATION-ENTRY">
    <xsd:annotation>
      <xsd:documentation>This service is used to notify a slave node to store its configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LinCommunication::SaveConfigurationEntry -->
  <xsd:complexType name="SAVE-CONFIGURATION-ENTRY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This service is used to notify a slave node to store its configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class GlobalConstraints::ScaleConstr -->
  <xsd:group name="SCALE-CONSTR">
    <xsd:sequence>
      <xsd:element name="SHORT-LABEL" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies a short name for the scaleConstr. This can for example be used to create more specific messages of a constraint checker. The constraints cannot be associated in the metamodel, therefore shortLabel is somehow a substitute for shortName.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SCALE-CONSTR_TYPE__SHORT-LABEL";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DESC" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:element name="LOWER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
      <xsd:element name="UPPER-LIMIT" type="AR:LIMIT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class GlobalConstraints::ScaleConstr -->
  <xsd:attributeGroup name="SCALE-CONSTR">
    <xsd:attribute name="VALIDITY" type="AR:SCALE-CONSTR-VALIDITY-ENUM">
      <xsd:annotation>
        <xsd:documentation>Spcifies, if the values defined by the scales are considered to be valid. If the attribute is missing, the default value is "VALID"</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="SCALE-CONSTR_TYPE__SCALE-CONSTR_TYPE__VALIDITY";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class GlobalConstraints::ScaleConstr -->
  <xsd:complexType name="SCALE-CONSTR" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:SCALE-CONSTR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:SCALE-CONSTR"/>
  </xsd:complexType>
  <!-- element group for class GlobalConstraints::ScaleConstrs -->
  <xsd:group name="SCALE-CONSTRS">
    <xsd:sequence>
      <xsd:element name="SCALE-CONSTR" type="AR:SCALE-CONSTR" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class GlobalConstraints::ScaleConstrs -->
  <xsd:complexType name="SCALE-CONSTRS" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:SCALE-CONSTRS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::ScheduleTableEntry -->
  <xsd:group name="SCHEDULE-TABLE-ENTRY">
    <xsd:annotation>
      <xsd:documentation>Table entry in a LinScheduleTable. Specifies what will be done in the frame slot.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DELAY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Relative delay between this tableEntry and the start of the successor in the schedule table in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:element name="POSITION-IN-TABLE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Relative position in the schedule table.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class SpecialData::Sd -->
  <xsd:group name="SD">
    <xsd:annotation>
      <xsd:documentation>This class is a "Special Data" element. By using this element it is possible to extend the model with arbirtrary information. In this case the "role" is specified using gid.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="SD";msr.id="type__SD_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class SpecialData::Sd -->
  <xsd:attributeGroup name="SD">
    <xsd:annotation>
      <xsd:documentation>This class is a "Special Data" element. By using this element it is possible to extend the model with arbirtrary information. In this case the "role" is specified using gid.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="SD";msr.id="type__SD_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="GID" type="xsd:NMTOKEN">
      <xsd:annotation>
        <xsd:documentation>This attributes specifies an identifier. Gid comes from the SGML-Term "Generic Identifier" which is the element name in XML. The role of this attribute is the same as the name of an XML - element.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="SD_TYPE__SD_TYPE__GID";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class SpecialData::Sd -->
  <xsd:complexType name="SD" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This class is a "Special Data" element. By using this element it is possible to extend the model with arbirtrary information. In this case the "role" is specified using gid.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="SD";msr.id="type__SD_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:SD"/>
  </xsd:complexType>
  <!-- element group for class SpecialData::Sdg -->
  <xsd:group name="SDG">
    <xsd:annotation>
      <xsd:documentation>Sdg is a generic model which can be used to keep arbitrary information which is not explicitly modeled in the metamodel. Sdg can have various contets as defined by sdgContentsType. Special Data should only be used moderately since all elements should be defined in the metamodel. Thereby SDG should be considered as a temporary solution when no explicit model is available. If an sdgCaption is available, it is possible to establish a reference to the sdg structure.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-SDG";msr.id="type__SDG_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SDG-CAPTION" type="AR:SDG-CAPTION" minOccurs="0"/>
      <xsd:element name="SDG-CAPTION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SDG-CAPTION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:SDG-CONTENTS"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class SpecialData::Sdg -->
  <xsd:attributeGroup name="SDG">
    <xsd:annotation>
      <xsd:documentation>Sdg is a generic model which can be used to keep arbitrary information which is not explicitly modeled in the metamodel. Sdg can have various contets as defined by sdgContentsType. Special Data should only be used moderately since all elements should be defined in the metamodel. Thereby SDG should be considered as a temporary solution when no explicit model is available. If an sdgCaption is available, it is possible to establish a reference to the sdg structure.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-SDG";msr.id="type__SDG_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="GID" type="xsd:NMTOKEN">
      <xsd:annotation>
        <xsd:documentation>This attributes specifies an identifier. Gid comes from the SGML-Term "Generic Identifier" which is the element name in XML. The role of this attribute is the same as the name of an XML - element.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="SDG_TYPE__SDG_TYPE__GID";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class SpecialData::Sdg -->
  <xsd:complexType name="SDG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Sdg is a generic model which can be used to keep arbitrary information which is not explicitly modeled in the metamodel. Sdg can have various contets as defined by sdgContentsType. Special Data should only be used moderately since all elements should be defined in the metamodel. Thereby SDG should be considered as a temporary solution when no explicit model is available. If an sdgCaption is available, it is possible to establish a reference to the sdg structure.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-SDG";msr.id="type__SDG_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SDG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:SDG"/>
  </xsd:complexType>
  <!-- element group for class SpecialData::SdgCaption -->
  <xsd:group name="SDG-CAPTION">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SpecialData::SdgCaption -->
  <xsd:complexType name="SDG-CAPTION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <xsd:simpleType name="SDG-CAPTION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SDG-CAPTION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SpecialData::SdgContents -->
  <xsd:group name="SDG-CONTENTS">
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SDX-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:IDENTIFIABLE--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="SD" type="AR:SD" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="SDG" type="AR:SDG" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class SpecialData::SdgContents -->
  <xsd:complexType name="SDG-CONTENTS" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SDG-CONTENTS"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SpecialData::Sdx -->
  <xsd:group name="SDX">
    <xsd:annotation>
      <xsd:documentation>This is a class which allows to refer to any identifiable object. It could be modeled as an association to Identifiable. But for compatibility reasons to ASAM it is left as it is.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class SpecialData::Sdx -->
  <xsd:attributeGroup name="SDX">
    <xsd:annotation>
      <xsd:documentation>This is a class which allows to refer to any identifiable object. It could be modeled as an association to Identifiable. But for compatibility reasons to ASAM it is left as it is.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="GID" type="xsd:NMTOKEN">
      <xsd:annotation>
        <xsd:documentation>This attributes specifies an identifier. Gid comes from the SGML-Term "Generic Identifier" which is the element name in XML. The role of this attribute is the same as the name of an XML - element.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="SDG_TYPE__SDG_TYPE__GID";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="ID-CLASS" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>This specifies the class of the referenced object.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="SD_TYPE__SD_TYPE__ID-CLASS";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class SpecialData::Sdx -->
  <xsd:complexType name="SDX" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This is a class which allows to refer to any identifiable object. It could be modeled as an association to Identifiable. But for compatibility reasons to ASAM it is left as it is.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:SDX"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::SegmentPosition -->
  <xsd:group name="SEGMENT-POSITION">
    <xsd:annotation>
      <xsd:documentation>The StaticPart and the DynamicPart can be
separated in multiple segments within the multiplexed PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SEGMENT-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Data Length of the segment in bits.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="START-POSITION-IN-MULTIPLEXED-I-PDU" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Segments bit position relatively to the beginning of a multiplexed IPdu. With the attributes startPositionMultiplexedIPdu and startPositionInSignalIPdu a segment in the source can be copied to the segment in the destination.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="START-POSITION-IN-SIGNAL-I-PDU" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Segments bit position relatively to the beginning of a Signal IPdu. With the attributes startPositionMultiplexedIPdu and startPositionInSignalIPdu a segment in the source can be copied to the segment in the destination.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::SegmentPosition -->
  <xsd:complexType name="SEGMENT-POSITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The StaticPart and the DynamicPart can be
separated in multiple segments within the multiplexed PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SEGMENT-POSITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::SenderAnnotation -->
  <xsd:group name="SENDER-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation of a sender port, specifying properties of data elements that don't affect communication or generation of the RTE.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::SenderAnnotation -->
  <xsd:complexType name="SENDER-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation of a sender port, specifying properties of data elements that don't affect communication or generation of the RTE.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:SENDER-RECEIVER-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::SenderComSpec -->
  <xsd:group name="SENDER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes for a sender port (P-Port and sender-receiver interface).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRANSMISSION-ACKNOWLEDGE" type="AR:TRANSMISSION-ACKNOWLEDGEMENT-REQUEST" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class DataMapping::SenderRecArrayElementMapping -->
  <xsd:group name="SENDER-REC-ARRAY-ELEMENT-MAPPING">
    <xsd:annotation>
      <xsd:documentation>The ArrayElement may be a primitive one or a composite one. If the element is primitive, it will be mapped to the "SystemSignal" (multiplicity 1).
If the element is composite, there will be no mapping to the "SystemSignal" (multiplicity 0). In this case the "ArrayElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive array element is mapped the indexed element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPLEX-TYPE-MAPPING" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="SENDER-REC-ARRAY-TYPE-MAPPING" type="AR:SENDER-REC-ARRAY-TYPE-MAPPING"/>
            <xsd:element name="SENDER-REC-RECORD-TYPE-MAPPING" type="AR:SENDER-REC-RECORD-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INDEXED-ARRAY-ELEMENT" type="AR:INDEXED-ARRAY-ELEMENT" minOccurs="0"/>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SenderRecArrayElementMapping -->
  <xsd:complexType name="SENDER-REC-ARRAY-ELEMENT-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ArrayElement may be a primitive one or a composite one. If the element is primitive, it will be mapped to the "SystemSignal" (multiplicity 1).
If the element is composite, there will be no mapping to the "SystemSignal" (multiplicity 0). In this case the "ArrayElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive array element is mapped the indexed element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SENDER-REC-ARRAY-ELEMENT-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::SenderRecArrayTypeMapping -->
  <xsd:group name="SENDER-REC-ARRAY-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is an Array, the "ArrayTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ARRAY-ELEMENT-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SENDER-REC-ARRAY-ELEMENT-MAPPING" type="AR:SENDER-REC-ARRAY-ELEMENT-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SenderRecArrayTypeMapping -->
  <xsd:complexType name="SENDER-REC-ARRAY-TYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is an Array, the "ArrayTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SENDER-REC-ARRAY-TYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::SenderRecCompositeTypeMapping -->
  <xsd:group name="SENDER-REC-COMPOSITE-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Two mappings exist for the composite data types:
"ArrayTypeMapping" and "RecordTypeMapping".
In both, a primitive datatype will be mapped to a system signal. 

But it is also possible to combine the arrays and the records, so that an "array" could be an element of a "record" and in the same manner a "record" could be an element of an "array". Nesting these data types is also possible.

If an element of a composite data type is again a composite one, the "CompositeTypeMapping" element will be used one more time (aggregation between the ArrayElementMapping and CompositeTypeMapping or aggregation between the RecordElementMapping and CompositeTypeMapping).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class DataMapping::SenderRecRecordElementMapping -->
  <xsd:group name="SENDER-REC-RECORD-ELEMENT-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of a primitive record element to a SystemSignal. 

If the element is composite, there will be no mapping (multiplicity 0). In this case the "RecordElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive record element is mapped the record element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPLEX-TYPE-MAPPING" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="SENDER-REC-ARRAY-TYPE-MAPPING" type="AR:SENDER-REC-ARRAY-TYPE-MAPPING"/>
            <xsd:element name="SENDER-REC-RECORD-TYPE-MAPPING" type="AR:SENDER-REC-RECORD-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RECORD-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-RECORD-ELEMENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SenderRecRecordElementMapping -->
  <xsd:complexType name="SENDER-REC-RECORD-ELEMENT-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Mapping of a primitive record element to a SystemSignal. 

If the element is composite, there will be no mapping (multiplicity 0). In this case the "RecordElementMapping" Element will aggregate the "TypeMapping" Element. In that way also the composite datatypes can be mapped to SystemSignals. 

Regardless whether composite or primitive record element is mapped the record element always needs to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SENDER-REC-RECORD-ELEMENT-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::SenderRecRecordTypeMapping -->
  <xsd:group name="SENDER-REC-RECORD-TYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is a Record, the "RecordTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="RECORD-ELEMENT-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SENDER-REC-RECORD-ELEMENT-MAPPING" type="AR:SENDER-REC-RECORD-ELEMENT-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SenderRecRecordTypeMapping -->
  <xsd:complexType name="SENDER-REC-RECORD-TYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>If the compositeType is a Record, the "RecordTypeMapping" will be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SENDER-REC-RECORD-TYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::SenderReceiverAnnotation -->
  <xsd:group name="SENDER-RECEIVER-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation of the data elements in a port that realizes a sender/receiver interface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPUTED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag whether this data element was not measured directly but instead was calculated from possibly several other measured or calculated values.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATA-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LIMIT-KIND" type="AR:LIMIT-KIND" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This min or max has not to be mismatched with the min- and max for data-value in a compu-method. For example, this annotation
shows when the result of the calculation performed in a RunnableEntity owned by one AtomicSoftwareComponentType is transmitted to another AtomicSoftwareComponentType whose RunnableEntity will use this value as a limit, e.g. the max.power which can be used by that software-component, or the current min. slip.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PROCESSING-KIND" type="AR:PROCESSING-KIND" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class PortInterface::SenderReceiverInterface -->
  <xsd:group name="SENDER-RECEIVER-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>A sender/receiver interface declares a number of data elements to be sent and received.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE" type="AR:VARIABLE-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::SenderReceiverInterface -->
  <xsd:complexType name="SENDER-RECEIVER-INTERFACE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A sender/receiver interface declares a number of data elements to be sent and received.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:PORT-INTERFACE"/>
      <xsd:group ref="AR:SENDER-RECEIVER-INTERFACE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::SenderReceiverToSignalGroupMapping -->
  <xsd:group name="SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of a sender receiver communication data element with a composite datatype to a signal group.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENT" type="AR:VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF" minOccurs="0"/>
      <xsd:element name="SIGNAL-GROUP-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL-GROUP--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TYPE-MAPPING" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="SENDER-REC-ARRAY-TYPE-MAPPING" type="AR:SENDER-REC-ARRAY-TYPE-MAPPING"/>
            <xsd:element name="SENDER-REC-RECORD-TYPE-MAPPING" type="AR:SENDER-REC-RECORD-TYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SenderReceiverToSignalGroupMapping -->
  <xsd:complexType name="SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Mapping of a sender receiver communication data element with a composite datatype to a signal group.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DATA-MAPPING"/>
      <xsd:group ref="AR:SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::SenderReceiverToSignalMapping -->
  <xsd:group name="SENDER-RECEIVER-TO-SIGNAL-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Mapping of a sender receiver communication data element with a primitive datatype to a signal. 
If the data element has to be transmitted to several receivers there is still exactly one mapping defined.  In case of 1:n communication the VariableDataPrototype in the ProvidePort of the ComponentPrototype is still mapped to only one SystemSignal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENT" type="AR:VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF" minOccurs="0"/>
      <xsd:element name="SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SenderReceiverToSignalMapping -->
  <xsd:complexType name="SENDER-RECEIVER-TO-SIGNAL-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Mapping of a sender receiver communication data element with a primitive datatype to a signal. 
If the data element has to be transmitted to several receivers there is still exactly one mapping defined.  In case of 1:n communication the VariableDataPrototype in the ProvidePort of the ComponentPrototype is still mapped to only one SystemSignal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:DATA-MAPPING"/>
      <xsd:group ref="AR:SENDER-RECEIVER-TO-SIGNAL-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SensorActuator::SensorActuatorHW -->
  <xsd:group name="SENSOR-ACTUATOR-HW">
    <xsd:annotation>
      <xsd:documentation>The common attributes for sensors and actuators.
The sensor and actuators can be connected via a Peripheral HW Port, a Communication HW Port or a Power Driver HW Port.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCURACY" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the error in the representation of the Technical Signal in the data format
This applies only if the Technical Signal is encoded before it is transferred to the ECU Electronics (e.g. via Communication Transceiver HW Port).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CYCLE-TIME" type="AR:TIME-RANGE" minOccurs="0"/>
      <xsd:element name="RESOLUTION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the granularity of the representation of the Technical Signal in the data format.
This applies only if the Technical Signal is encoded before it is transferred to the ECU Electronics (e.g. via Communication Transceiver HW Port).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TYPE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the general type of the sensor/actuator type is a most common naming for a sensor/actuator and is an open list and is not restricted to the following items. Several sets of types exist. Type is mandatory for the usage of the template
- Sensor: Temperature, Pressure, Distance, Hall
- Actuator: DC Motor, Valve, Relay, Display</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:simpleType name="SENSOR-ACTUATOR-HW--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ACTUATOR-HW"/>
      <xsd:enumeration value="DISPLAY-HW"/>
      <xsd:enumeration value="SENSOR-HW"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class LatencyTimingConstraint::SensorActuatorLatencyConstraint -->
  <xsd:group name="SENSOR-ACTUATOR-LATENCY-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>The SensorActuatorLatencyConstraint extends the scope of the LatencyTimingConstraint over the boundaries of the associated event chain, in order to support high-level end-to-end latency constraints that bound the time latency from a sensor to an actuator. Thus, it does not only bound the time duration of the associated event chain, but also includes the input (sensor) latency and the output (actuator) latency.

A SensorActuatorLatencyConstraint can only be defined for TimingDescriptionEventChains with the following restrictions:

a) SenderReceiver
The stimulus of the associated event chain is of type TDEventDataElement with the enum type dataElementReceived, and theresponse is of type TDEventDataElement with the enum type dataElementSent.

b) ClientServer
The stimulus of the associated event chain is of type TDEventOperation with the enum type perationCallResponseReceived, and the response is of type TDEventOperation with the enum type operationCalled.

Note, that over- and undersampling effects are ignored for the input and output latency segments!</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class LatencyTimingConstraint::SensorActuatorLatencyConstraint -->
  <xsd:complexType name="SENSOR-ACTUATOR-LATENCY-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The SensorActuatorLatencyConstraint extends the scope of the LatencyTimingConstraint over the boundaries of the associated event chain, in order to support high-level end-to-end latency constraints that bound the time latency from a sensor to an actuator. Thus, it does not only bound the time duration of the associated event chain, but also includes the input (sensor) latency and the output (actuator) latency.

A SensorActuatorLatencyConstraint can only be defined for TimingDescriptionEventChains with the following restrictions:

a) SenderReceiver
The stimulus of the associated event chain is of type TDEventDataElement with the enum type dataElementReceived, and theresponse is of type TDEventDataElement with the enum type dataElementSent.

b) ClientServer
The stimulus of the associated event chain is of type TDEventOperation with the enum type perationCallResponseReceived, and the response is of type TDEventOperation with the enum type operationCalled.

Note, that over- and undersampling effects are ignored for the input and output latency segments!</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:LATENCY-TIMING-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::SensorActuatorSoftwareComponentType -->
  <xsd:group name="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>The SensorActuatorSoftwareComponentType introduces the possibility to link from the software representation of a sensor/actuator to its hardware description provided by the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SENSOR-ACTUATOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SENSOR-ACTUATOR-HW--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Components::SensorActuatorSoftwareComponentType -->
  <xsd:complexType name="SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The SensorActuatorSoftwareComponentType introduces the possibility to link from the software representation of a sensor/actuator to its hardware description provided by the ECU Resource Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
      <xsd:group ref="AR:SENSOR-ACTUATOR-SOFTWARE-COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SensorActuator::SensorHW -->
  <xsd:group name="SENSOR-HW">
    <xsd:annotation>
      <xsd:documentation>HW Element Sensor definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SIGNAL-QUALITY" type="AR:SENSOR-HW-SIGNAL-QUALITY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the quality of the data received from a sensor. Depending on this information later processing on the signal has to be done in HW or SW.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SensorActuator::SensorHW -->
  <xsd:complexType name="SENSOR-HW" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>HW Element Sensor definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:SENSOR-ACTUATOR-HW"/>
      <xsd:group ref="AR:SENSOR-HW"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SignalPaths::SeparateSignalPath -->
  <xsd:group name="SEPARATE-SIGNAL-PATH">
    <xsd:annotation>
      <xsd:documentation>The SeparateSignalPath describes that two SwcToSwcSignals and/or SwcToSwcOperationArguments must not take the same way (Signal Path) in the topology (e.g. Redundancy).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-OPERATION-ARGUMENTS" type="AR:SWC-TO-SWC-OPERATION-ARGUMENTS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNALS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-SWC-SIGNAL" type="AR:SWC-TO-SWC-SIGNAL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SignalPaths::SeparateSignalPath -->
  <xsd:complexType name="SEPARATE-SIGNAL-PATH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The SeparateSignalPath describes that two SwcToSwcSignals and/or SwcToSwcOperationArguments must not take the same way (Signal Path) in the topology (e.g. Redundancy).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SIGNAL-PATH-CONSTRAINT"/>
      <xsd:group ref="AR:SEPARATE-SIGNAL-PATH"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataMapping::SequenceCounterMapping -->
  <xsd:group name="SEQUENCE-COUNTER-MAPPING">
    <xsd:annotation>
      <xsd:documentation>The purpose of sequence counters is to map a response to the correct request of a known client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataMapping::SequenceCounterMapping -->
  <xsd:complexType name="SEQUENCE-COUNTER-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The purpose of sequence counters is to map a response to the correct request of a known client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SEQUENCE-COUNTER-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServerCall::ServerCallPoint -->
  <xsd:group name="SERVER-CALL-POINT">
    <xsd:annotation>
      <xsd:documentation>When a runnable has a serverCallPoint, it has the possibility to invoke any of the operations of a specific rport of the component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATION-IREFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OPERATION-IREF" type="AR:SERVER-CALL-POINT--OPERATION-IREF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Time in seconds before the server call times out and returns with an error message. It depends on the call type (synchronous or asynchronous) how this is reported.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class _instanceRef::ServerCallPoint_operation -->
  <xsd:group name="SERVER-CALL-POINT--OPERATION-IREF">
    <xsd:sequence>
      <xsd:element name="R-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="OPERATION-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::ServerCallPoint_operation -->
  <xsd:complexType name="SERVER-CALL-POINT--OPERATION-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:SERVER-CALL-POINT--OPERATION-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::ServerComSpec -->
  <xsd:group name="SERVER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes for a server port (P-Port and client-server interface).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="QUEUE-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of call queue on the server side. The queue is implemented by the RTE.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::ServerComSpec -->
  <xsd:complexType name="SERVER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes for a server port (P-Port and client-server interface).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SERVER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Components::ServiceComponentType -->
  <xsd:group name="SERVICE-COMPONENT-TYPE">
    <xsd:annotation>
      <xsd:documentation>ServiceComponentType is used for configuring services for a given ECU. Instances of this class are only to be created in ECU Configuration phase for the specific purpose of the service configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Components::ServiceComponentType -->
  <xsd:complexType name="SERVICE-COMPONENT-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>ServiceComponentType is used for configuring services for a given ECU. Instances of this class are only to be created in ECU Configuration phase for the specific purpose of the service configuration.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:COMPONENT-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::ServiceNeeds -->
  <xsd:group name="SERVICE-NEEDS">
    <xsd:annotation>
      <xsd:documentation>This expresses the abstract needs that a Software Component or Basic Software Module has on the configuration of an AUTOSAR Service to which it will be connected. "Abstract needs" means, that the model abstracts from the Configuration Paramaters of the underlying Basic Software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::ServiceNeeds -->
  <xsd:complexType name="SERVICE-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This expresses the abstract needs that a Software Component or Basic Software Module has on the configuration of an AUTOSAR Service to which it will be connected. "Abstract needs" means, that the model abstracts from the Configuration Paramaters of the underlying Basic Software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::SignalIPdu -->
  <xsd:group name="SIGNAL-I-PDU">
    <xsd:annotation>
      <xsd:documentation>Represents the I-PDU's handled by Com. The SignalIPdu assembled and disassembled in AUTOSAR COM consists of one or more signals.
In case no multiplexing is performed this IPdu is routed to/from the Interface Layer.

A maximum of one dynamic length signal per IPDU is allowed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="I-PDU-TIMING-SPECIFICATION" type="AR:I-PDU-TIMING" minOccurs="0"/>
      <xsd:element name="NUMBER-OF-REPLICAS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of I-PDU replicas (one or two). Attribute shall only be used if signalIPduReplicated attribute is set to true.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-COUNTER-INCLUDED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A Pdu counter is included in a predefined set of PDUs and used to ensure that a sequence of PDUs is maintained. The counter is incremented when a PDU is transmitted. The receivers check if the received PDU is the next one in sequence. 

true: Pdu Counter is included in this Ipdu.
false: Pdu Counter is not included. 

If this value is set to true, the optional attributes pduCounterSize and pduCounterStartPosition must be filled out.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-COUNTER-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Size of PDU Counter expressed in bits. Attribute shall only be used if pduCounterIncluded is set to true. 
Range: 1..8</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-COUNTER-START-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Position of PDU counter expressed in bits. Note that PDU counter is not allowed to cross a byte border. Attribute shall only be used if pduCounterIncluded is set to true.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-REPLICATION-COUNTER-SIZE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Size of the Pdu counter in the replication expressed in bits. Attribute shall only be used if signalIPduReplicated attribute is set to true.
Range: 1..8</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-REPLICATION-START-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Position of the PDU counter in the replication Pdu expressed in bits. Note that the PDU counter is not allowed to cross a byte border. Attribute shall only be used if signalIPduReplicated attribute is set to true.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PDU-REPLICATION-VOTING" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The number of identical I-PDUs needed for successful voting. The value must be less or equal to the value specified in attribute numberOfReplicas + 1. Attribute shall only be used if signalIPduReplicated attribute is set to true.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SIGNAL-I-PDU-REPLICATED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag if an I-PDU shall be replicated or not. 

true: IPdu shall be replicated
false: I-PDU shall not be replicated

PDU Replication is a form of redundancy where the data content of one PDU (source) is transmitted inside a set of PDUs (N copies). These PDUs (copies) have different PDU IDs, identical PDU counters, identical data content and are transmitted with the same frequency.

If this value is set to true, the optional attributes numberOfReplicas and pduCounterStartPosition must be filled out.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SIGNAL-TO-PDU-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="I-SIGNAL-TO-I-PDU-MAPPING" type="AR:I-SIGNAL-TO-I-PDU-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::SignalIPdu -->
  <xsd:complexType name="SIGNAL-I-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Represents the I-PDU's handled by Com. The SignalIPdu assembled and disassembled in AUTOSAR COM consists of one or more signals.
In case no multiplexing is performed this IPdu is routed to/from the Interface Layer.

A maximum of one dynamic length signal per IPDU is allowed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:I-PDU"/>
      <xsd:group ref="AR:SIGNAL-I-PDU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SIGNAL-I-PDU--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SIGNAL-I-PDU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Fibex4Multiplatform::SignalMapping -->
  <xsd:group name="SIGNAL-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Arranges those signals that are transferred by the gateway from one channel to the other in pairs and defines the mapping between them.
Each pair consists in a source and a target referencing to a ISignalToIPduMapping.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:element name="SOURCE-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-SIGNAL-TO-I-PDU-MAPPING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-SIGNAL-TO-I-PDU-MAPPING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::SignalMapping -->
  <xsd:complexType name="SIGNAL-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Arranges those signals that are transferred by the gateway from one channel to the other in pairs and defines the mapping between them.
Each pair consists in a source and a target referencing to a ISignalToIPduMapping.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SIGNAL-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SignalPaths::SignalPathConstraint -->
  <xsd:group name="SIGNAL-PATH-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>Additional guidelines for the System Generator, which specific way a signal between two Software Components should take in the network without defining in which frame and with which timing it is transmitted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DOCUMENTATION" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class CoreCommunication::SignalPort -->
  <xsd:group name="SIGNAL-PORT">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port on the referenced channel referenced by an ISignalTriggering. If different timeouts for signals need to be specified several SignalPorts may be created.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Optional timeout value in seconds for the reception of the ISignal.
In case the System Description doesn't use a complete Software Component Description (VFB View). This supports the inclusion of legacy system signals.

If a full DataMapping exist for the SystemSignal this information may be available from a configured ReceiverComSpec, in this case the timeout value in ReceiverComSpec override this optional timeout specification.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::SignalPort -->
  <xsd:complexType name="SIGNAL-PORT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Connectors reception or send port on the referenced channel referenced by an ISignalTriggering. If different timeouts for signals need to be specified several SignalPorts may be created.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMM-CONNECTOR-PORT"/>
      <xsd:group ref="AR:SIGNAL-PORT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SIGNAL-PORT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SIGNAL-PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ECUResourceTemplate::SignalTransformation -->
  <xsd:group name="SIGNAL-TRANSFORMATION">
    <xsd:annotation>
      <xsd:documentation>The Signal Transformation defines the conversion of the signal attached to a HW Port (direction In) and a signal attached to a HW Port (direction Out).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INPUT-HW-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INPUT-HW-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="OUTPUT-HW-PORT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="OUTPUT-HW-PORT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:HW-PORT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUResourceTemplate::SignalTransformation -->
  <xsd:complexType name="SIGNAL-TRANSFORMATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Signal Transformation defines the conversion of the signal attached to a HW Port (direction In) and a signal attached to a HW Port (direction Out).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SIGNAL-TRANSFORMATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ExecutionTime::SimulatedExecutionTime -->
  <xsd:group name="SIMULATED-EXECUTION-TIME">
    <xsd:annotation>
      <xsd:documentation>Specifies the ExecutionTime which has been gathered using simulation means.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AVERAGE-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Average SimulatedExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAXIMAL-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum SimulatedExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINIMAL-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum SimulatedExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::SimulatedExecutionTime -->
  <xsd:complexType name="SIMULATED-EXECUTION-TIME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the ExecutionTime which has been gathered using simulation means.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:EXECUTION-TIME"/>
      <xsd:group ref="AR:SIMULATED-EXECUTION-TIME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SingleLanguageData::SingleLanguageOverviewParagraph -->
  <xsd:group name="SINGLE-LANGUAGE-OVERVIEW-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>This is the model for a single language paragraph in an overview item.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-2";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SingleLanguageData::SingleLanguageOverviewParagraph -->
  <xsd:complexType name="SINGLE-LANGUAGE-OVERVIEW-PARAGRAPH" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This is the model for a single language paragraph in an overview item.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-2";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-OVERVIEW-PARAGRAPH"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SingleLanguageData::SingleLanguageParagraph -->
  <xsd:group name="SINGLE-LANGUAGE-PARAGRAPH">
    <xsd:annotation>
      <xsd:documentation>SingleLanguageParagraph

This is the content model of a single language paragraph in a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-1";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SingleLanguageData::SingleLanguageParagraph -->
  <xsd:complexType name="SINGLE-LANGUAGE-PARAGRAPH" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>SingleLanguageParagraph

This is the content model of a single language paragraph in a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-1";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-PARAGRAPH"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SingleLanguageData::SingleLanguagePlainText -->
  <xsd:group name="SINGLE-LANGUAGE-PLAIN-TEXT">
    <xsd:annotation>
      <xsd:documentation>This is a signel language plain Text.It is intended to be rendered as a paragraph.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-10";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SingleLanguageData::SingleLanguagePlainText -->
  <xsd:complexType name="SINGLE-LANGUAGE-PLAIN-TEXT" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This is a signel language plain Text.It is intended to be rendered as a paragraph.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-10";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SingleLanguageData::SingleLanguageUnitNames -->
  <xsd:group name="SINGLE-LANGUAGE-UNIT-NAMES">
    <xsd:annotation>
      <xsd:documentation>This is a plain text in single language.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-3";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SingleLanguageData::SingleLanguageUnitNames -->
  <xsd:complexType name="SINGLE-LANGUAGE-UNIT-NAMES" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This is a plain text in single language.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__sl-data-3";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:MIXED-CONTENT-FOR-UNIT-NAMES"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SoftwareComponentDocumentation::SoftwareComponentDocumentation -->
  <xsd:group name="SOFTWARE-COMPONENT-DOCUMENTATION">
    <xsd:sequence>
      <xsd:element name="COMPONENT-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-FEATURE-DEF" type="AR:CHAPTER" minOccurs="0"/>
      <xsd:element name="SW-FEATURE-DESC" type="AR:CHAPTER" minOccurs="0"/>
      <xsd:element name="SW-TEST-DESC" type="AR:CHAPTER" minOccurs="0"/>
      <xsd:element name="SW-CALIBRATION-NOTES" type="AR:CHAPTER" minOccurs="0"/>
      <xsd:element name="SW-MAINTENANCE-NOTES" type="AR:CHAPTER" minOccurs="0"/>
      <xsd:element name="SW-CARB-DOC" type="AR:CHAPTER" minOccurs="0"/>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="CHAPTER" type="AR:CHAPTER"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SoftwareComponentDocumentation::SoftwareComponentDocumentation -->
  <xsd:complexType name="SOFTWARE-COMPONENT-DOCUMENTATION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SOFTWARE-COMPONENT-DOCUMENTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SystemTemplate::SoftwareComposition -->
  <xsd:group name="SOFTWARE-COMPOSITION">
    <xsd:annotation>
      <xsd:documentation>The Top-level software composition, containing all software components in the System in a hierarchical structure. The contained ComponentPrototypes are fully specified by their ComponentTypes (including PortPrototypes, PortInterfaces, VariableDataPrototypes, InternalBehavior etc.), and their ports are interconnected using ConnectorPrototypes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SOFTWARE-COMPOSITION-TREF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPOSITION-COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SystemTemplate::SoftwareComposition -->
  <xsd:complexType name="SOFTWARE-COMPOSITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The Top-level software composition, containing all software components in the System in a hierarchical structure. The contained ComponentPrototypes are fully specified by their ComponentTypes (including PortPrototypes, PortInterfaces, VariableDataPrototypes, InternalBehavior etc.), and their ports are interconnected using ConnectorPrototypes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:SOFTWARE-COMPOSITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SOFTWARE-COMPOSITION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SOFTWARE-COMPOSITION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class ResourceConsumption::SoftwareContext -->
  <xsd:group name="SOFTWARE-CONTEXT">
    <xsd:annotation>
      <xsd:documentation>Specifes the context the software is whose ExecutionTime is provided.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INPUT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the input vector which is used to provide the ExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STATE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the state the software is in when the ExecutionTime is provided.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ResourceConsumption::SoftwareContext -->
  <xsd:complexType name="SOFTWARE-CONTEXT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifes the context the software is whose ExecutionTime is provided.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SOFTWARE-CONTEXT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Fibex4Multiplatform::SourceIPduRef -->
  <xsd:group name="SOURCE-I-PDU-REF">
    <xsd:annotation>
      <xsd:documentation>Source destination of the referencing mapping.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="AR:PDU-MAPPING-DEFAULT-VALUE" minOccurs="0"/>
      <xsd:element name="SOURCE-I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::SourceIPduRef -->
  <xsd:complexType name="SOURCE-I-PDU-REF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Source destination of the referencing mapping.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SOURCE-I-PDU-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class EventTriggeringConstraint::SporadicEventTriggering -->
  <xsd:group name="SPORADIC-EVENT-TRIGGERING">
    <xsd:annotation>
      <xsd:documentation>The sporadic event triggering describes that an event occurs occasionally or singly. However, a periodic arrival pattern can be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="JITTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MAXIMUM-INTER-ARRIVAL-TIME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MINIMUM-INTER-ARRIVAL-TIME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PERIOD-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class EventTriggeringConstraint::SporadicEventTriggering -->
  <xsd:complexType name="SPORADIC-EVENT-TRIGGERING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The sporadic event triggering describes that an event occurs occasionally or singly. However, a periodic arrival pattern can be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:EVENT-TRIGGERING-CONSTRAINT"/>
      <xsd:group ref="AR:SPORADIC-EVENT-TRIGGERING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class StackUsage::StackUsage -->
  <xsd:group name="STACK-USAGE">
    <xsd:annotation>
      <xsd:documentation>Describes the stack memory usage of a software.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="HARDWARE-CONFIGURATION" type="AR:HARDWARE-CONFIGURATION" minOccurs="0"/>
      <xsd:element name="RUNNABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:EXECUTABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SOFTWARE-CONTEXT" type="AR:SOFTWARE-CONTEXT" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class CoreCommunication::StaticPart -->
  <xsd:group name="STATIC-PART">
    <xsd:annotation>
      <xsd:documentation>Some parts/signals of the I-PDU may be the same regardless of the selector field. Such a part is called static part. The static part is optional.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SIGNAL-I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::StaticPart -->
  <xsd:complexType name="STATIC-PART" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Some parts/signals of the I-PDU may be the same regardless of the selector field. Such a part is called static part. The static part is optional.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MULTIPLEXED-PART"/>
      <xsd:group ref="AR:STATIC-PART"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::Std -->
  <xsd:group name="STD">
    <xsd:annotation>
      <xsd:documentation>Use &lt;std&gt; to reference external standards within a paragraph element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__STD_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SUBTITLE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;subtitle&gt; to enter a sub-heading of an external standard. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="STD_TYPE__SUBTITLE";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STATE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;state1&gt; to enter the version and state of a standard or an external document. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="STD_TYPE__STATE-1";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATE" type="xsd:dateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies the release date of the external standard if applicable.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="STD_TYPE__DATE-1";msr.tbdString="true";xml.sequenceOffset="50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="URL" type="AR:URL" minOccurs="0"/>
      <xsd:element name="POSITION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;position&gt; to enter references to the relevant positions of a standard. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="STD_TYPE__POSITION";msr.tbdString="true";xml.sequenceOffset="70"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InlineTextElements::Std -->
  <xsd:complexType name="STD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;std&gt; to reference external standards within a paragraph element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__STD_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:STD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::StringParamDef -->
  <xsd:group name="STRING-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for String.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Default value of the string configuration parameter.

atpVariation: [ECUC00083]</xsd:documentation>
          <xsd:appinfo source="tags">Vh.latestBindingTime="CodeGenerationTime"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::StringParamDef -->
  <xsd:complexType name="STRING-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Configuration parameter type for String.</xsd:documentation>
      <xsd:appinfo source="tags">xml.sequenceOffset="0"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:CONFIG-PARAMETER"/>
      <xsd:group ref="AR:STRING-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceNeeds::SupervisedEntityNeeds -->
  <xsd:group name="SUPERVISED-ENTITY-NEEDS">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Watchdog Manager for one specific Supervised Entity (SE).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTIVATE-AT-START" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>true/false: supervision activation status of SE shall be enabled/disabled at start</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ENABLE-DEACTIVATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>true: SWC shall be allowed to deactivate supervision of this SE
false: not</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXPECTED-ALIVE-CYCLE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Expected cycle time of alive trigger of this SE (in seconds)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MAX-ALIVE-CYCLE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum cycle time of alive trigger of this SE (in seconds)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MIN-ALIVE-CYCLE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum cycle time of alive trigger of this SE (in seconds)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TOLERATED-FAILED-CYCLES" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of consecutive failed alive cycles for this SE which shall be tolerated until the supervision status of the SE is set to EXPIRED (see WdgM documentation for details). Note that this has to be recalculated w.r.t. the WdgMs own cycle time for ECU configuration.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceNeeds::SupervisedEntityNeeds -->
  <xsd:complexType name="SUPERVISED-ENTITY-NEEDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the abstract needs on the configuration of the Watchdog Manager for one specific Supervised Entity (SE).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SUPERVISED-ENTITY-NEEDS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ProcessingUnit::SupportedDataType -->
  <xsd:group name="SUPPORTED-DATA-TYPE">
    <xsd:annotation>
      <xsd:documentation>This element provides a list of all supported data types and its according data sizes of the described PU.
Examples: Boolean (1, 8 bit), Bit String / Bit Field (x bit), Character (8, 16 bit), Signed / unsigned integer (8, 16, 24, 32, 48, 64 bit), Single / double float (56, 64 bit), Fixed point (24 bit), Fractional, Packed (two values handled in one register)</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SUPPORTED-DATA-SIZES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SUPPORTED-DATA-SIZE" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>The size of the data type.
Unit: Bit</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ProcessingUnit::SupportedDataType -->
  <xsd:complexType name="SUPPORTED-DATA-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element provides a list of all supported data types and its according data sizes of the described PU.
Examples: Boolean (1, 8 bit), Bit String / Bit Field (x bit), Character (8, 16 bit), Signed / unsigned integer (8, 16, 24, 32, 48, 64 bit), Single / double float (56, 64 bit), Fixed point (24 bit), Fractional, Packed (two values handled in one register)</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SUPPORTED-DATA-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class BasicElements::SupportsSafety -->
  <xsd:group name="SUPPORTS-SAFETY">
    <xsd:annotation>
      <xsd:documentation>In the current version of the ECU Resource Template the element SupportsSafety is optional. A HW Element uses this element if it provides a safety mechanism, otherwise this element is missing in the description of the HW Element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class BasicElements::SupportsSafety -->
  <xsd:complexType name="SUPPORTS-SAFETY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>In the current version of the ECU Resource Template the element SupportsSafety is optional. A HW Element uses this element if it provides a safety mechanism, otherwise this element is missing in the description of the HW Element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BasicElements::SupportsSecurity -->
  <xsd:group name="SUPPORTS-SECURITY">
    <xsd:annotation>
      <xsd:documentation>The ECU Resource Template provides the element SupportsSecurity storing the information about the supported security mechanism.
In the current version of the ECU Resource Template the element SupportsSecurity is optional. A HW Element uses this element if it provides a security mechanism otherwise this element is missing in the description of the HW Element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class BasicElements::SupportsSecurity -->
  <xsd:complexType name="SUPPORTS-SECURITY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The ECU Resource Template provides the element SupportsSecurity storing the information about the supported security mechanism.
In the current version of the ECU Resource Template the element SupportsSecurity is optional. A HW Element uses this element if it provides a security mechanism otherwise this element is missing in the description of the HW Element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AuxillaryObjects::SwAddrMethod -->
  <xsd:group name="SW-ADDR-METHOD">
    <xsd:annotation>
      <xsd:documentation>Describes how variables or parameters are addressed in the ECU. It contains a description of the addressing process and a reference to the concerned CPU memory segment.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-ADDR-METHOD_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwAddrMethod -->
  <xsd:complexType name="SW-ADDR-METHOD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes how variables or parameters are addressed in the ECU. It contains a description of the addressing process and a reference to the concerned CPU memory segment.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-ADDR-METHOD_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-ADDR-METHOD--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-ADDR-METHOD"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Axis::SwAxisGeneric -->
  <xsd:group name="SW-AXIS-GENERIC">
    <xsd:annotation>
      <xsd:documentation>This element defines a genric axis. In a generic axis the axispoints points are calculated in the ECU. 
The ECU is equipped with a fixed calculation algorithm. Parameters for the algorithm can be stored in the data component of the ECU. Therefore these paramters are specified in the data declaration, not in the calibration data.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-GENERIC_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-AXIS-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-AXIS-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-GENERIC-AXIS-PARAMS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-GENERIC-AXIS-PARAM" type="AR:SW-GENERIC-AXIS-PARAM"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Axis::SwAxisGeneric -->
  <xsd:complexType name="SW-AXIS-GENERIC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element defines a genric axis. In a generic axis the axispoints points are calculated in the ECU. 
The ECU is equipped with a fixed calculation algorithm. Parameters for the algorithm can be stored in the data component of the ECU. Therefore these paramters are specified in the data declaration, not in the calibration data.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-GENERIC_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-AXIS-GENERIC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Axis::SwAxisGrouped -->
  <xsd:group name="SW-AXIS-GROUPED">
    <xsd:annotation>
      <xsd:documentation>An SwAxisGrouped is an axis which is shared between multiple calibration parameters.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-GROUPED_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SHARED-AXIS-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-PRIMITIVE-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:choice minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Axis::SwAxisGrouped -->
  <xsd:complexType name="SW-AXIS-GROUPED" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An SwAxisGrouped is an axis which is shared between multiple calibration parameters.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-GROUPED_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-AXIS-GROUPED"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Axis::SwAxisIndividual -->
  <xsd:group name="SW-AXIS-INDIVIDUAL">
    <xsd:annotation>
      <xsd:documentation>This element describes an axis integrated into a parameter (field etc.). The integration makes this individual to each parameter. The so-called grouped axis represents the counterpart to this. It is conceived as an independent parameter (see class SwAxisGrouped).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-INDIVIDUAL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INPUT-VARIABLE-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:APPLICATION-PRIMITIVE-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-VARIABLE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:group ref="AR:SW-VARIABLE-REF-PROXY"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPU-METHOD-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPU-METHOD--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UNIT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:UNIT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-MAX-AXIS-POINTS" type="AR:VF" minOccurs="0"/>
      <xsd:element name="SW-MIN-AXIS-POINTS" type="AR:VF" minOccurs="0"/>
      <xsd:element name="DATA-CONSTR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DATA-CONSTR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-AXIS-GENERIC" type="AR:SW-AXIS-GENERIC" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Axis::SwAxisIndividual -->
  <xsd:complexType name="SW-AXIS-INDIVIDUAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes an axis integrated into a parameter (field etc.). The integration makes this individual to each parameter. The so-called grouped axis represents the counterpart to this. It is conceived as an independent parameter (see class SwAxisGrouped).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-INDIVIDUAL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-AXIS-INDIVIDUAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Axis::SwAxisType -->
  <xsd:group name="SW-AXIS-TYPE">
    <xsd:annotation>
      <xsd:documentation>Stands for a specific axis calculation strategy. No formal specification is given, due to the fact that it is possible to use arbitrary algorithms for calculating axis-points. Instead, the algorithm is described verbally but the parameters are specified formally with respect to their names and constraints. As a result, SwAxisType mainly reserves appropriate keywords.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-TYPE_TYPE";msr.isNamespace=" TeamMembe SwGenericAxisPara"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-GENERIC-AXIS-DESC" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
      <xsd:element name="SW-GENERIC-AXIS-PARAM-TYPES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-GENERIC-AXIS-PARAM-TYPE" type="AR:SW-GENERIC-AXIS-PARAM-TYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Axis::SwAxisType -->
  <xsd:complexType name="SW-AXIS-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Stands for a specific axis calculation strategy. No formal specification is given, due to the fact that it is possible to use arbitrary algorithms for calculating axis-points. Instead, the algorithm is described verbally but the parameters are specified formally with respect to their names and constraints. As a result, SwAxisType mainly reserves appropriate keywords.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-AXIS-TYPE_TYPE";msr.isNamespace=" TeamMembe SwGenericAxisPara"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-AXIS-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-AXIS-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-AXIS-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class BaseTypes::SwBaseType -->
  <xsd:group name="SW-BASE-TYPE">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class BaseTypes::SwBaseType -->
  <xsd:complexType name="SW-BASE-TYPE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:BASE-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-BASE-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-BASE-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DataDefProperties::SwBitRepresentation -->
  <xsd:group name="SW-BIT-REPRESENTATION">
    <xsd:annotation>
      <xsd:documentation>Description of the structure of a bit variable: Comprises of the bitPosition in a memory object (e.g. swHostVariable, which stands parallel to swBitRepresentation) and the numberOfBits . In this way, interrelated memory areas can be described. Non-related memory areas are not supported.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-BIT-REPRESENTATION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BIT-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>If the "bit data object" is hosted witin another data object (e.g. if the memory can be accessed via byte as well as bit adress), this attribute specifies the position of the data object. The count starts at zero (0).</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-BIT-REPRESENTATION_TYPE__BIT-POSITION";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NUMBER-OF-BITS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of bits allocated by a "bit data object" within its host data object.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-BIT-REPRESENTATION_TYPE__NUMBER-OF-BITS";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwBitRepresentation -->
  <xsd:complexType name="SW-BIT-REPRESENTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Description of the structure of a bit variable: Comprises of the bitPosition in a memory object (e.g. swHostVariable, which stands parallel to swBitRepresentation) and the numberOfBits . In this way, interrelated memory areas can be described. Non-related memory areas are not supported.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-BIT-REPRESENTATION_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-BIT-REPRESENTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CalibrationParameter::SwCalprmAxis -->
  <xsd:group name="SW-CALPRM-AXIS">
    <xsd:annotation>
      <xsd:documentation>This element specifies an individual input parameter axis (abscissa).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-AXIS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-AXIS-INDEX" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the index referring to the axis currently described, for which the contents is specified.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-CALPRM-AXIS_TYPE__SW-AXIS-INDEX";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CATEGORY" type="AR:CALPRM-AXIS-CATEGORY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This property specifies the category of a particular axis.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-CALPRM-AXIS_TYPE__CATEGORY";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="SW-AXIS-GROUPED" type="AR:SW-AXIS-GROUPED"/>
        <xsd:element name="SW-AXIS-INDIVIDUAL" type="AR:SW-AXIS-INDIVIDUAL"/>
      </xsd:choice>
      <xsd:element name="SW-CALIBRATION-ACCESS" type="AR:SW-CALIBRATION-ACCESS-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes the applicability of parameters and variables.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-CALPRM-AXIS_TYPE__SW-CALIBRATION-ACCESS";msr.tbdString="true";xml.sequenceOffset="90"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DISPLAY-FORMAT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This property specifies how the axis values shall be displayed e.g. in documents or in measurement and calibration tools.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-CALPRM-AXIS_TYPE__DISPLAY-FORMAT";msr.tbdString="true";xml.sequenceOffset="100"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="BASE-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-BASE-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CalibrationParameter::SwCalprmAxis -->
  <xsd:complexType name="SW-CALPRM-AXIS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies an individual input parameter axis (abscissa).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-AXIS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-CALPRM-AXIS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CalibrationParameter::SwCalprmAxisSet -->
  <xsd:group name="SW-CALPRM-AXIS-SET">
    <xsd:annotation>
      <xsd:documentation>This element specifies the input parameter axes (abscissas) of parameters (and variables, if these are used adaptively).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-AXIS-SET_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-CALPRM-AXIS" type="AR:SW-CALPRM-AXIS" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CalibrationParameter::SwCalprmAxisSet -->
  <xsd:complexType name="SW-CALPRM-AXIS-SET" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies the input parameter axes (abscissas) of parameters (and variables, if these are used adaptively).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-AXIS-SET_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-CALPRM-AXIS-SET"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class CalibrationParameter::SwCalprmAxisTypeProps -->
  <xsd:group name="SW-CALPRM-AXIS-TYPE-PROPS">
    <xsd:annotation>
      <xsd:documentation>Base class for the type of the calibration axis. This provides the particular model of the specialization. If the specialization would be the directly from SwCalPrmAxis, the sequence of common properties and the specializes ones would be different.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__SW-CALPRM-AXIS_axis_TYPE";msr.isOrgroup="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class SwClass::SwCalprmImpl -->
  <xsd:group name="SW-CALPRM-IMPL">
    <xsd:annotation>
      <xsd:documentation>This element describes the implementation details of a class attribute which manifests itself as a calibration parameter.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-CALPRM-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-CALPRM-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwCalprmImpl -->
  <xsd:complexType name="SW-CALPRM-IMPL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the implementation details of a class attribute which manifests itself as a calibration parameter.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-CALPRM-IMPL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwCalprmPrototype -->
  <xsd:group name="SW-CALPRM-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>This element describes the prototype declaration of a class attribute, which is used as a calibration parameter.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-PROTOTYPE_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwCalprmPrototype -->
  <xsd:complexType name="SW-CALPRM-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the prototype declaration of a class attribute, which is used as a calibration parameter.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CALPRM-PROTOTYPE_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IS-SYSCOND"/>
      <xsd:group ref="AR:SW-CALPRM-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-CALPRM-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-CALPRM-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DatadictionaryProxies::SwCalprmRefProxy -->
  <xsd:group name="SW-CALPRM-REF-PROXY">
    <xsd:annotation>
      <xsd:documentation>Parent class for several kinds of references to a calibration parameter.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AR-PARAMETER" type="AR:AR-PARAMETER-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class CalibrationParameter::SwCalprmValueAxisLabels -->
  <xsd:group name="SW-CALPRM-VALUE-AXIS-LABELS">
    <xsd:annotation>
      <xsd:documentation>This element is used to record textual descriptions of axis values and is contained in ASAP1.4, for reasons of backward compatibility.

In new systems, the application should be implemented via conversion formulae.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-CALPRM-VALUE-AXIS-LABELS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class CalibrationParameter::SwCalprmValueAxisLabels -->
  <xsd:complexType name="SW-CALPRM-VALUE-AXIS-LABELS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element is used to record textual descriptions of axis values and is contained in ASAP1.4, for reasons of backward compatibility.

In new systems, the application should be implemented via conversion formulae.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-CALPRM-VALUE-AXIS-LABELS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwClassAttr -->
  <xsd:group name="SW-CLASS-ATTR">
    <xsd:annotation>
      <xsd:documentation>Defines the object-oriented class-attributes containing the prototypes: &lt;swVariablePrototypes&gt; which denote attributes within the classes that are variables, &lt;swCalprmPrototypes&gt; which denote attributes within the classes that are calibration parameters , &lt;SW-SERVICE-PROTOTYPES&gt; which denote attributes within the classes that are services and &lt;swClassPrototypes&gt; which denote attributes within the classes that are class instances themselves.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-ATTR_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-VARIABLE-PROTOTYPES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-VARIABLE-PROTOTYPE" type="AR:SW-VARIABLE-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-CALPRM-PROTOTYPES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-CALPRM-PROTOTYPE" type="AR:SW-CALPRM-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwClassAttr -->
  <xsd:complexType name="SW-CLASS-ATTR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the object-oriented class-attributes containing the prototypes: &lt;swVariablePrototypes&gt; which denote attributes within the classes that are variables, &lt;swCalprmPrototypes&gt; which denote attributes within the classes that are calibration parameters , &lt;SW-SERVICE-PROTOTYPES&gt; which denote attributes within the classes that are services and &lt;swClassPrototypes&gt; which denote attributes within the classes that are class instances themselves.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-ATTR_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-CLASS-ATTR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwClassAttrImpl -->
  <xsd:group name="SW-CLASS-ATTR-IMPL">
    <xsd:annotation>
      <xsd:documentation>Defines the object-oriented class-attributes: SW-VARIABLE-IMPLS which implement attributes that are variables, SW-CALPRM-IMPLS which implement attributes that are calibration parameters and SW-CLASS-IMPLS which implement attributes that are class instances themselves.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-ATTR-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
      <xsd:element name="SW-VARIABLE-IMPLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-VARIABLE-IMPL" type="AR:SW-VARIABLE-IMPL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-CALPRM-IMPLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-CALPRM-IMPL" type="AR:SW-CALPRM-IMPL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwClassAttrImpl -->
  <xsd:complexType name="SW-CLASS-ATTR-IMPL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the object-oriented class-attributes: SW-VARIABLE-IMPLS which implement attributes that are variables, SW-CALPRM-IMPLS which implement attributes that are calibration parameters and SW-CLASS-IMPLS which implement attributes that are class instances themselves.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-ATTR-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-CLASS-ATTR-IMPL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-CLASS-ATTR-IMPL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-CLASS-ATTR-IMPL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SwClass::SwClassAttrInstanceImpl -->
  <xsd:group name="SW-CLASS-ATTR-INSTANCE-IMPL">
    <xsd:annotation>
      <xsd:documentation>&lt;swClassAttrInstanceImpl&gt; is used to create an instance from a model (Models are defined with SW-CLASS) where some specifications shall be changed / overwritten. This implementation will then be a instance specific implementation (Classes are usually only implemented under &lt;swClassImpls&gt;).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-ATTR-INSTANCE-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-VARIABLE-IMPLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-VARIABLE-IMPL" type="AR:SW-VARIABLE-IMPL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-CALPRM-IMPLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-CALPRM-IMPL" type="AR:SW-CALPRM-IMPL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-CLASS-IMPLS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-CLASS-IMPL" type="AR:SW-CLASS-IMPL"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwClassAttrInstanceImpl -->
  <xsd:complexType name="SW-CLASS-ATTR-INSTANCE-IMPL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>&lt;swClassAttrInstanceImpl&gt; is used to create an instance from a model (Models are defined with SW-CLASS) where some specifications shall be changed / overwritten. This implementation will then be a instance specific implementation (Classes are usually only implemented under &lt;swClassImpls&gt;).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-ATTR-INSTANCE-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-CLASS-ATTR-INSTANCE-IMPL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwClassImpl -->
  <xsd:group name="SW-CLASS-IMPL">
    <xsd:annotation>
      <xsd:documentation>This element describes the implementation details of a class attribute which manifests itself as a class.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-CLASS-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-CLASS-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwClassImpl -->
  <xsd:complexType name="SW-CLASS-IMPL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the implementation details of a class attribute which manifests itself as a class.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-CLASS-IMPL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwClassInstance -->
  <xsd:group name="SW-CLASS-INSTANCE">
    <xsd:annotation>
      <xsd:documentation>Defines the particular instantiation of a referenced &lt;swClass&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-INSTANCE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
      <xsd:element name="SW-CLASS-ATTR-INSTANCE-IMPL" type="AR:SW-CLASS-ATTR-INSTANCE-IMPL" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwClassInstance -->
  <xsd:complexType name="SW-CLASS-INSTANCE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the particular instantiation of a referenced &lt;swClass&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-INSTANCE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-CLASS-INSTANCE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwClassPrototype -->
  <xsd:group name="SW-CLASS-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>This element describes the prototype declaration of a class attribute, which appears in the form of a class.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-PROTOTYPE_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SwClass::SwClassPrototype -->
  <xsd:complexType name="SW-CLASS-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the prototype declaration of a class attribute, which appears in the form of a class.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-CLASS-PROTOTYPE_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IS-SYSCOND"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-CLASS-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-CLASS-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class AuxillaryObjects::SwCodeSyntax -->
  <xsd:group name="SW-CODE-SYNTAX">
    <xsd:annotation>
      <xsd:documentation>SwCodeSyntax objects fix the representation of data objects, e.g. variables and parameters, in the program source file. These code syntax objects are defined centrally in SwCodeSyntaxes and are connected to data objects by means of SwCodeSyntaxRef.

The principle role of this element is the declaration of keywords (in the subelement ShortName) for the code generation procedure. The process itself is given a verbal description (in SwCodeSyntaxDesc) rather than a formal one. This approach was adopted as the number of possible code syntax schematics is relatively small. A complete formal description would create unnecessary work.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-CODE-SYNTAX_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwCodeSyntax -->
  <xsd:complexType name="SW-CODE-SYNTAX" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>SwCodeSyntax objects fix the representation of data objects, e.g. variables and parameters, in the program source file. These code syntax objects are defined centrally in SwCodeSyntaxes and are connected to data objects by means of SwCodeSyntaxRef.

The principle role of this element is the declaration of keywords (in the subelement ShortName) for the code generation procedure. The process itself is given a verbal description (in SwCodeSyntaxDesc) rather than a formal one. This approach was adopted as the number of possible code syntax schematics is relatively small. A complete formal description would create unnecessary work.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-CODE-SYNTAX_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-CODE-SYNTAX--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-CODE-SYNTAX"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class GlobalConstraints::SwConstrObjects -->
  <xsd:group name="SW-CONSTR-OBJECTS">
    <xsd:annotation>
      <xsd:documentation>Parameters or variables can reference plausibility checks. The assignment of data to &lt;swConstrObjects&gt; makes the reverse direction possible.

In this way for example plausibility libraries stored in external files can be latched beneath the previous element &lt;SW-DATA-CONSTRS&gt; -element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-CONSTR-OBJECTS_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class GlobalConstraints::SwConstrObjects -->
  <xsd:complexType name="SW-CONSTR-OBJECTS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Parameters or variables can reference plausibility checks. The assignment of data to &lt;swConstrObjects&gt; makes the reverse direction possible.

In this way for example plausibility libraries stored in external files can be latched beneath the previous element &lt;SW-DATA-CONSTRS&gt; -element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-CONSTR-OBJECTS_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataDefProperties::SwDataDefProps -->
  <xsd:group name="SW-DATA-DEF-PROPS">
    <xsd:annotation>
      <xsd:documentation>This class is a collection of properties relevant for data objects under various aspects. One could consider this class as a "pattern of inheritance by aggregation". The properties can be applied to all objects of all classes in which SwDataDefProps is agrregated.

Note that not all of the attributes or associated elements are useful all of the time. Hence, the process definition (e.g. expressed with an OCL or a Document Control Instance) MSR-DCI has the task of implementing limitations.

SwDataDefProps covers various aspects:

* Structure of the data element, is it a single value, a curve, or a map, but also the recordLayouts which specify, how such elements are mapped/converted to the DataTypes in the programming language (or in Autosar). This is mainly expressed by properties like swRecordLayout and swCalprmAxisSet 

* Implementation policy, mainly expressed by swImplPolicy, swVariableAccessImplPolicy, swAddrMethod 

* Access policy for the MDC system, mainly expressed by swCalibrationAccess 

* Semantics of the data element, mainly expressed by compuMethod and/or unit, dataConstr 

* Code generation policy provided by swRecordLayout and SwCodeSyntax</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-DATA-DEF-PROPS_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ANNOTATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ANNOTATION" type="AR:ANNOTATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-ADDR-METHOD-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-ADDR-METHOD--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="BASE-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-BASE-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-BIT-REPRESENTATION" type="AR:SW-BIT-REPRESENTATION" minOccurs="0"/>
      <xsd:element name="SW-CALIBRATION-ACCESS" type="AR:SW-CALIBRATION-ACCESS-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies the read or write access by MCD tools for this data object.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-DATA-DEF-PROPS_TYPE__SW-CALIBRATION-ACCESS";msr.tbdString="true";xml.sequenceOffset="70"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-VALUE-BLOCK-SIZE" type="AR:VALUE-LIST" minOccurs="0"/>
      <xsd:element name="SW-CALPRM-AXIS-SET" type="AR:SW-CALPRM-AXIS-SET" minOccurs="0"/>
      <xsd:element name="SW-TEXT-PROPS" type="AR:SW-TEXT-PROPS" minOccurs="0"/>
      <xsd:element name="SW-CLASS-ATTR-IMPL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-CLASS-ATTR-IMPL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-CODE-SYNTAX-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-CODE-SYNTAX--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPU-METHOD-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPU-METHOD--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-CONSTR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:DATA-CONSTR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEPENDENCY" type="AR:SW-DATA-DEPENDENCY" minOccurs="0"/>
      <xsd:element name="DISPLAY-FORMAT" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This property describes how a number is to be rendered e.g. in documents or in a measurement and calibration system.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-DATA-DEF-PROPS_TYPE__DISPLAY-FORMAT";msr.tbdString="true";xml.sequenceOffset="210"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IMPLEMENTATION-DATA-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:IMPLEMENTATION-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INVALID-VALUE" type="AR:PRIMITIVE-VALUE-SPECIFICATION" minOccurs="0"/>
      <xsd:element name="SW-HOST-VARIABLE" type="AR:SW-VARIABLE-REF-PROXY" minOccurs="0"/>
      <xsd:element name="SW-IMPL-POLICY" type="AR:SW-IMPL-POLICY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Implementation policy for this data object.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-DATA-DEF-PROPS_TYPE__SW-IMPL-POLICY";msr.tbdString="true";xml.sequenceOffset="230"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-POINTER" type="AR:SW-POINTER" minOccurs="0"/>
      <xsd:element name="SW-RECORD-LAYOUT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-RECORD-LAYOUT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UNIT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:UNIT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-VARIABLE-ACCESS-IMPL-POLICY" type="AR:SW-VARIABLE-ACCESS-IMPL-POLICY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>In case of a swImplPolicy set to "message" the access policy can be refined here.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-DATA-DEF-PROPS_TYPE__SW-VARIABLE-ACCESS-IMPL-POLICY";msr.tbdString="true";xml.sequenceOffset="390"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwDataDefProps -->
  <xsd:complexType name="SW-DATA-DEF-PROPS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class is a collection of properties relevant for data objects under various aspects. One could consider this class as a "pattern of inheritance by aggregation". The properties can be applied to all objects of all classes in which SwDataDefProps is agrregated.

Note that not all of the attributes or associated elements are useful all of the time. Hence, the process definition (e.g. expressed with an OCL or a Document Control Instance) MSR-DCI has the task of implementing limitations.

SwDataDefProps covers various aspects:

* Structure of the data element, is it a single value, a curve, or a map, but also the recordLayouts which specify, how such elements are mapped/converted to the DataTypes in the programming language (or in Autosar). This is mainly expressed by properties like swRecordLayout and swCalprmAxisSet 

* Implementation policy, mainly expressed by swImplPolicy, swVariableAccessImplPolicy, swAddrMethod 

* Access policy for the MDC system, mainly expressed by swCalibrationAccess 

* Semantics of the data element, mainly expressed by compuMethod and/or unit, dataConstr 

* Code generation policy provided by swRecordLayout and SwCodeSyntax</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-DATA-DEF-PROPS_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:IS-SYSCOND"/>
      <xsd:group ref="AR:SW-DATA-DEF-PROPS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SystemConstant::SwDataDefPropsSysconds -->
  <xsd:group name="SW-DATA-DEF-PROPS-SYSCONDS">
    <xsd:annotation>
      <xsd:documentation>If this is aggregated by another element, the contained SwDataDefProps will be valid only when the corresponding swSyscond expression (in SwDataDefProps) evaluates to true. This is useful when an SwDataDefProps shall only be used when a system condition has a certain value.

Note that the resulte SwDataDefProps must entirely unambigous.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-DATA-DEF-PROPS-SYSCONDS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SystemConstant::SwDataDefPropsSysconds -->
  <xsd:complexType name="SW-DATA-DEF-PROPS-SYSCONDS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>If this is aggregated by another element, the contained SwDataDefProps will be valid only when the corresponding swSyscond expression (in SwDataDefProps) evaluates to true. This is useful when an SwDataDefProps shall only be used when a system condition has a certain value.

Note that the resulte SwDataDefProps must entirely unambigous.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-DATA-DEF-PROPS-SYSCONDS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataDefProperties::SwDataDependency -->
  <xsd:group name="SW-DATA-DEPENDENCY">
    <xsd:annotation>
      <xsd:documentation>This element describes the interdependencies of data objects, e.g. variables and parameters. It can be used for example to treat virtual parameters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-DATA-DEPENDENCY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEPENDENCY-FORMULA" type="AR:COMPU-GENERIC-MATH" minOccurs="0"/>
      <xsd:element name="SW-DATA-DEPENDENCY-ARGS" type="AR:SW-DATA-DEPENDENCY-ARGS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwDataDependency -->
  <xsd:complexType name="SW-DATA-DEPENDENCY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the interdependencies of data objects, e.g. variables and parameters. It can be used for example to treat virtual parameters.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-DATA-DEPENDENCY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-DATA-DEPENDENCY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataDefProperties::SwDataDependencyArgs -->
  <xsd:group name="SW-DATA-DEPENDENCY-ARGS">
    <xsd:annotation>
      <xsd:documentation>This element specifies the elements used in a SwDataDependency.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-DATA-DEPENDENCY-ARGS_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:group ref="AR:SW-VARIABLE-REF-PROXY"/>
        </xsd:choice>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwDataDependencyArgs -->
  <xsd:complexType name="SW-DATA-DEPENDENCY-ARGS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies the elements used in a SwDataDependency.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-DATA-DEPENDENCY-ARGS_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-DATA-DEPENDENCY-ARGS"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Axis::SwGenericAxisParam -->
  <xsd:group name="SW-GENERIC-AXIS-PARAM">
    <xsd:annotation>
      <xsd:documentation>This element describes a specific parameter of a generic axis. The name of the parameter is defined through a reference to a parameter type defined on a corresponding axis type.

The value of the parameter is given here in case that it is not changeable during calibration. Example is shift / Offset in a fixed axis.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-GENERIC-AXIS-PARAM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-GENERIC-AXIS-PARAM-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-GENERIC-AXIS-PARAM-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:SW-GENERIC-AXIS-PARAM-VALUE"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Axis::SwGenericAxisParam -->
  <xsd:complexType name="SW-GENERIC-AXIS-PARAM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes a specific parameter of a generic axis. The name of the parameter is defined through a reference to a parameter type defined on a corresponding axis type.

The value of the parameter is given here in case that it is not changeable during calibration. Example is shift / Offset in a fixed axis.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-GENERIC-AXIS-PARAM_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-GENERIC-AXIS-PARAM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Axis::SwGenericAxisParamType -->
  <xsd:group name="SW-GENERIC-AXIS-PARAM-TYPE">
    <xsd:annotation>
      <xsd:documentation>This element describes a generic axis parameter type, namely:

* Plausibility checks can be specified via dataConstr.

* Textual description (desc), as a formal description is not of any use, due to the large variety of possibilities.

* If this parameter contains structures, these can be simulated through the recursive use of swGenericAxisParamTypes.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-GENERIC-AXIS-PARAM-TYPE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Axis::SwGenericAxisParamType -->
  <xsd:complexType name="SW-GENERIC-AXIS-PARAM-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes a generic axis parameter type, namely:

* Plausibility checks can be specified via dataConstr.

* Textual description (desc), as a formal description is not of any use, due to the large variety of possibilities.

* If this parameter contains structures, these can be simulated through the recursive use of swGenericAxisParamTypes.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-GENERIC-AXIS-PARAM-TYPE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-GENERIC-AXIS-PARAM-TYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-GENERIC-AXIS-PARAM-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DataDefProperties::SwGenericAxisParamValue -->
  <xsd:group name="SW-GENERIC-AXIS-PARAM-VALUE">
    <xsd:annotation>
      <xsd:documentation>Contains the value for the generic axis parameter.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="special__SW-GENERIC-AXIS-PARAM-VALUE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="VF" type="AR:VF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="V" type="AR:NUMERICAL-VALUE" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;v&gt; to enter a numerical value.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="50";msr.id="SW-GENERIC-AXIS-PARAM-VALUE__V"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwGenericAxisParamValue -->
  <xsd:complexType name="SW-GENERIC-AXIS-PARAM-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Contains the value for the generic axis parameter.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="special__SW-GENERIC-AXIS-PARAM-VALUE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-GENERIC-AXIS-PARAM-VALUE"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Chapters::SwGlossary -->
  <xsd:group name="SW-GLOSSARY">
    <xsd:annotation>
      <xsd:documentation>The function of this element is to compile a glossary. This is in the context of inputting a fixed chapter in the ECU documentation, which appears in a glossary.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-GLOSSARY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Chapters::SwGlossary -->
  <xsd:complexType name="SW-GLOSSARY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The function of this element is to compile a glossary. This is in the context of inputting a fixed chapter in the ECU documentation, which appears in a glossary.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-GLOSSARY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataDefProperties::SwPointer -->
  <xsd:group name="SW-POINTER">
    <xsd:annotation>
      <xsd:documentation>This element indicates, that the data object (which is specified by the containing element) is a reference to another data object. The properties of the referred data object are described in the swDataDefProps contained by the SwPointer .</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-POINTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwPointer -->
  <xsd:complexType name="SW-POINTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element indicates, that the data object (which is specified by the containing element) is a reference to another data object. The properties of the referred data object are described in the swDataDefProps contained by the SwPointer .</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-POINTER_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-POINTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AuxillaryObjects::SwRecordLayout -->
  <xsd:group name="SW-RECORD-LAYOUT">
    <xsd:annotation>
      <xsd:documentation>Defines how the data objects (variables, calibration parameters etc.) are to be stored in the ECU memory. As an example, this definition specifies the sequence of axis points in the ECU memory. Iterations through axis values are stored within the subelements swRecordLayoutGroup . These subelements might be stored nested to support multidimensional data objects.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-RECORD-LAYOUT_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-RECORD-LAYOUT-GROUP" type="AR:SW-RECORD-LAYOUT-GROUP" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwRecordLayout -->
  <xsd:complexType name="SW-RECORD-LAYOUT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines how the data objects (variables, calibration parameters etc.) are to be stored in the ECU memory. As an example, this definition specifies the sequence of axis points in the ECU memory. Iterations through axis values are stored within the subelements swRecordLayoutGroup . These subelements might be stored nested to support multidimensional data objects.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-RECORD-LAYOUT_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-RECORD-LAYOUT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-RECORD-LAYOUT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-RECORD-LAYOUT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class AuxillaryObjects::SwRecordLayoutGroup -->
  <xsd:group name="SW-RECORD-LAYOUT-GROUP">
    <xsd:annotation>
      <xsd:documentation>Specifies how a record layout is set up. Using SwRecordLayoutGroup it recursively models iterations through axis values. The subelement swRecordLayoutGroupContentType may reference other SwRecordLayouts, SwRecordLayoutVs and SwRecordLayoutGroups for the modeled record layout.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-RECORD-LAYOUT-GROUP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESC" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:element name="SW-RECORD-LAYOUT-GROUP-AXIS" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The contents of this element specifies the axis number within a record layout group.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-GROUP_TYPE__SW-RECORD-LAYOUT-GROUP-AXIS";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-GROUP-INDEX" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element attributes a symbolic name to the iterator of the superimposed record layout group. This can be referenced as a loop index beneath superimposed or subsequent SwRecordLayoutV elements.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-GROUP_TYPE__SW-RECORD-LAYOUT-GROUP-INDEX";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-GROUP-FROM" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies the iterator index for the point in the axis from which a record layout group is commenced. Negative values are also possible, i.e. the value -4 counts from the fourth value from the end.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-GROUP_TYPE__SW-RECORD-LAYOUT-GROUP-FROM";msr.tbdString="true";xml.sequenceOffset="60"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-GROUP-TO" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies the iterator index for a point in the axis up to which iteration for a record layout group takes place. Negative values are also possible, i.e. the value -4 counts up to the fourth value from the end.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-GROUP_TYPE__SW-RECORD-LAYOUT-GROUP-TO";msr.tbdString="true";xml.sequenceOffset="70"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-GROUP-STEP" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies the step width for the iterator index, which is used for a record layout group .</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-GROUP_TYPE__SW-RECORD-LAYOUT-GROUP-STEP";msr.tbdString="true";xml.sequenceOffset="80"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-COMPONENT" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element is used to denote the component to which the group in question applies. Thus, the record layout supports structured objects. This secures independence from the sequence of components, because they can be referred to via name.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-GROUP_TYPE__SW-RECORD-LAYOUT-COMPONENT";msr.tbdString="true";xml.sequenceOffset="90"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:SW-RECORD-LAYOUT-GROUP-CONTENT"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwRecordLayoutGroup -->
  <xsd:complexType name="SW-RECORD-LAYOUT-GROUP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies how a record layout is set up. Using SwRecordLayoutGroup it recursively models iterations through axis values. The subelement swRecordLayoutGroupContentType may reference other SwRecordLayouts, SwRecordLayoutVs and SwRecordLayoutGroups for the modeled record layout.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-RECORD-LAYOUT-GROUP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-RECORD-LAYOUT-GROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AuxillaryObjects::SwRecordLayoutGroupContent -->
  <xsd:group name="SW-RECORD-LAYOUT-GROUP-CONTENT">
    <xsd:annotation>
      <xsd:documentation>This is the contents of a RecordLaoyut which is inserted for every iteration. Note that since this is atpMixed, multiple properties can be inserted for each iteration.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__SW-RECORD-LAYOUT-GROUP_content_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SW-RECORD-LAYOUT-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:SW-RECORD-LAYOUT--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="SW-RECORD-LAYOUT-V" type="AR:SW-RECORD-LAYOUT-V" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="SW-RECORD-LAYOUT-GROUP" type="AR:SW-RECORD-LAYOUT-GROUP" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwRecordLayoutGroupContent -->
  <xsd:complexType name="SW-RECORD-LAYOUT-GROUP-CONTENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is the contents of a RecordLaoyut which is inserted for every iteration. Note that since this is atpMixed, multiple properties can be inserted for each iteration.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="special__SW-RECORD-LAYOUT-GROUP_content_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-RECORD-LAYOUT-GROUP-CONTENT"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AuxillaryObjects::SwRecordLayoutV -->
  <xsd:group name="SW-RECORD-LAYOUT-V">
    <xsd:annotation>
      <xsd:documentation>This element specifies which values are stored for the current SwRecordLayoutGroup. If no baseType is present, the SwBaseType referenced initially in the father element SwRecordLayoutGroup is valid. The specification of swRecordLayoutVAxis gives the axis of the values to be stored in accordance with the current record layout SwRecordLayoutGroup. In swRecordLayoutVProp you are able to specify the type of values that are to be stored, e.g. number or value. Under swRecordLayoutVIndex, the symbolic values of the axes can be given, for which the value given under swRecordLayoutVProp is iterated. These symbolic values relate to the values given in swRecordLayoutGroupIndex.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-RECORD-LAYOUT-V_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BASE-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-BASE-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-V-AXIS" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute specifies the axis from which the value properties are used.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-V_TYPE__SW-RECORD-LAYOUT-V-AXIS";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-V-PROP" type="xsd:NMTOKEN" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The contents of this attribute describes the type of values to be stored in the record.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-V_TYPE__SW-RECORD-LAYOUT-V-PROP";msr.tbdString="true";xml.sequenceOffset="50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-V-INDEX" type="AR:IDENTIFIER" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The symbolic value for iteration, or the symbolic values separated by white-spaces, refer to the symbolic values given in swRecordLayoutGroupIndex . The iterators are processed from left to right, in such a manner that they symbolize the loop index from the outside to the inside.

An error has occurred if a parameter references a record layout which contains an swRecordLayoutVIndex with more components than the number of parameter axes.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-V_TYPE__SW-RECORD-LAYOUT-V-INDEX";msr.tbdString="true";xml.sequenceOffset="60"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-V-FIX-VALUE" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute specifies the filler character for the current record layout, in the form of hex digits. The element present parallel to this in swRecordLayoutVProp must therefore have the contents FILL.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-RECORD-LAYOUT-V_TYPE__SW-RECORD-LAYOUT-V-FIX-VALUE";msr.tbdString="true";xml.sequenceOffset="80"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-RECORD-LAYOUT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-RECORD-LAYOUT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwRecordLayoutV -->
  <xsd:complexType name="SW-RECORD-LAYOUT-V" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies which values are stored for the current SwRecordLayoutGroup. If no baseType is present, the SwBaseType referenced initially in the father element SwRecordLayoutGroup is valid. The specification of swRecordLayoutVAxis gives the axis of the values to be stored in accordance with the current record layout SwRecordLayoutGroup. In swRecordLayoutVProp you are able to specify the type of values that are to be stored, e.g. number or value. Under swRecordLayoutVIndex, the symbolic values of the axes can be given, for which the value given under swRecordLayoutVProp is iterated. These symbolic values relate to the values given in swRecordLayoutGroupIndex.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-RECORD-LAYOUT-V_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-RECORD-LAYOUT-V"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class AuxillaryObjects::SwRelatedConstrs -->
  <xsd:group name="SW-RELATED-CONSTRS">
    <xsd:annotation>
      <xsd:documentation>This element describes plausibility rules that go beyond the individual data object. E.g. the overrun shut-off engine speed must not be higher than the maximum engine speed. This plausibility rule is defined in exactly the same way as the contexts and dependencies of virtual characteristic variables and variables.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-RELATED-CONSTRS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class AuxillaryObjects::SwRelatedConstrs -->
  <xsd:complexType name="SW-RELATED-CONSTRS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes plausibility rules that go beyond the individual data object. E.g. the overrun shut-off engine speed must not be higher than the maximum engine speed. This plausibility rule is defined in exactly the same way as the contexts and dependencies of virtual characteristic variables and variables.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-RELATED-CONSTRS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceProcessTask::SwService -->
  <xsd:group name="SW-SERVICE">
    <xsd:annotation>
      <xsd:documentation>Describes a procedure call in the software. Depending on the usage, the description can contain properties of the function call (signature) and of its implementation as well.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE_TYPE";msr.isNamespace=" TeamMembe SwGenericAxisPara SwCalpr SwFeatureVarian SwInstanc SwInstanc SwServiceArg SwServiceRetur"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-SERVICE-RETURN" type="AR:SW-SERVICE-ARG" minOccurs="0"/>
      <xsd:element name="SW-SERVICE-ARGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-SERVICE-ARG" type="AR:SW-SERVICE-ARG"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-SERVICE-ACCESSED-ELEMENT-SETS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-SERVICE-ACCESSED-ELEMENT-SET" type="AR:SW-SERVICE-ACCESSED-ELEMENT-SET"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-SERVICE-PROPS" type="AR:SW-SERVICE-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceProcessTask::SwService -->
  <xsd:complexType name="SW-SERVICE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes a procedure call in the software. Depending on the usage, the description can contain properties of the function call (signature) and of its implementation as well.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE_TYPE";msr.isNamespace=" TeamMembe SwGenericAxisPara SwCalpr SwFeatureVarian SwInstanc SwInstanc SwServiceArg SwServiceRetur"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-SERVICE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceProcessTask::SwServiceAccessedElementSet -->
  <xsd:group name="SW-SERVICE-ACCESSED-ELEMENT-SET">
    <xsd:annotation>
      <xsd:documentation>This element is similar to &lt;SW-INTERFACE-ACCESSED-ELEMENT-SET&gt; but applies to &lt;SW-SERVICE&gt; . To some extent it is now possible to epress the access to interface elements

* within a software component represented by ( &lt;swFeature&gt; ), which is the mainly a functional view

* within a process represented by &lt;SW-SERVICE&gt;, which is more the dynamic view. These processes are part of compontents (represented by ownership and imports, which makes it possible to retrieve the functional view from the dynamic view (but ** vice versa).</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-SERVICE-ACCESSED-ELEMENT-SET_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceProcessTask::SwServiceAccessedElementSet -->
  <xsd:complexType name="SW-SERVICE-ACCESSED-ELEMENT-SET" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element is similar to &lt;SW-INTERFACE-ACCESSED-ELEMENT-SET&gt; but applies to &lt;SW-SERVICE&gt; . To some extent it is now possible to epress the access to interface elements

* within a software component represented by ( &lt;swFeature&gt; ), which is the mainly a functional view

* within a process represented by &lt;SW-SERVICE&gt;, which is more the dynamic view. These processes are part of compontents (represented by ownership and imports, which makes it possible to retrieve the functional view from the dynamic view (but ** vice versa).</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-SERVICE-ACCESSED-ELEMENT-SET_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:IS-SYSCOND"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceProcessTask::SwServiceArg -->
  <xsd:group name="SW-SERVICE-ARG">
    <xsd:annotation>
      <xsd:documentation>Specifies the properties of a data object exchanged during the call of an SwService, e.g. an argument or a return value.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE-ARG_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-ARRAYSIZE" type="AR:VALUE-LIST" minOccurs="0"/>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
      <xsd:element name="SW-DATA-DEF-PROPS-SYSCONDS" type="AR:SW-DATA-DEF-PROPS-SYSCONDS" minOccurs="0"/>
      <xsd:element name="ADD-INFO-5" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceProcessTask::SwServiceArg -->
  <xsd:complexType name="SW-SERVICE-ARG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Specifies the properties of a data object exchanged during the call of an SwService, e.g. an argument or a return value.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE-ARG_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-SERVICE-ARG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ServiceProcessTask::SwServiceImpl -->
  <xsd:group name="SW-SERVICE-IMPL">
    <xsd:annotation>
      <xsd:documentation>tbd</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServiceProcessTask::SwServiceImpl -->
  <xsd:complexType name="SW-SERVICE-IMPL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>tbd</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceProcessTask::SwServiceProps -->
  <xsd:group name="SW-SERVICE-PROPS">
    <xsd:annotation>
      <xsd:documentation>Describes certain properties of the service implementation.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE-PROPS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-SERVICE-REENTRANCE" type="AR:SW-SERVICE-REENTRANCE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Reentrance enables or prohibits the service to be invoked again, before the service has
finished and delivered a result. If the attribute is missing, then reentrance is prohibited.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-SERVICE-PROPS_TYPE__SW-SERVICE-REENTRANCE";msr.tbdString="true";xml.sequenceOffset="20"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SW-IMPL-POLICY" type="AR:SW-SERVICE-IMPL-POLICY-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the specification of an implementation strategy. In this way, the direction of the implementation to come, can be specified in advance in an earlier phase.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-SERVICE-PROPS_TYPE__SW-IMPL-POLICY";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceProcessTask::SwServiceProps -->
  <xsd:complexType name="SW-SERVICE-PROPS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Describes certain properties of the service implementation.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SERVICE-PROPS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-SERVICE-PROPS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwServicePrototype -->
  <xsd:group name="SW-SERVICE-PROTOTYPE">
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class SwClass::SwServicePrototype -->
  <xsd:complexType name="SW-SERVICE-PROTOTYPE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IS-SYSCOND"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SystemConstant::SwSystemconst -->
  <xsd:group name="SW-SYSTEMCONST">
    <xsd:annotation>
      <xsd:documentation>This element specifies a system constant. Normally, a system constant can be accessed during compilation time (not during runtime). A system constant can belong to a specific category &lt;category&gt;. Physical values &lt;swValuesPhys&gt; or internal values &lt;swValuesCoded&gt; can be specified. If the system constant is referenced in code, but has only been set physically, the converted value is applied in the place of the reference. Therefore, the references to system constants are literally replaced by the value of the referenced system constant (calculated where necessary).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SYSTEMCONST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SystemConstant::SwSystemconst -->
  <xsd:complexType name="SW-SYSTEMCONST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies a system constant. Normally, a system constant can be accessed during compilation time (not during runtime). A system constant can belong to a specific category &lt;category&gt;. Physical values &lt;swValuesPhys&gt; or internal values &lt;swValuesCoded&gt; can be specified. If the system constant is referenced in code, but has only been set physically, the converted value is applied in the place of the reference. Therefore, the references to system constants are literally replaced by the value of the referenced system constant (calculated where necessary).</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-SYSTEMCONST_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-SYSTEMCONST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-SYSTEMCONST--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-SYSTEMCONST"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class VariantHandling::SwSystemconstDependantFormula -->
  <xsd:group name="SW-SYSTEMCONST-DEPENDANT-FORMULA">
    <xsd:annotation>
      <xsd:documentation>This class represents an expression depending on systerm constants.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SW-SYSTEMCONST-CODED-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:SW-SYSTEMCONST--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="SW-SYSTEMCONST-PHYS-REF" minOccurs="0" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:extension base="AR:REF">
                <xsd:attribute name="DEST" type="AR:SW-SYSTEMCONST--SUBTYPES-ENUM" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- element group for class VariantHandling::SwSystemconstValue -->
  <xsd:group name="SW-SYSTEMCONST-VALUE">
    <xsd:annotation>
      <xsd:documentation>This metaclass assigns a particular value to a system constant.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-SYSTEMCONST-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-SYSTEMCONST--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="VF" type="AR:VALUE-BY-FORMULA" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::SwSystemconstValue -->
  <xsd:complexType name="SW-SYSTEMCONST-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This metaclass assigns a particular value to a system constant.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-SYSTEMCONST-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class VariantHandling::SwSystemconstantValueSet -->
  <xsd:group name="SW-SYSTEMCONSTANT-VALUE-SET">
    <xsd:sequence>
      <xsd:element name="SW-SYSTEMCONSTANT-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SW-SYSTEMCONST-VALUE" type="AR:SW-SYSTEMCONST-VALUE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::SwSystemconstantValueSet -->
  <xsd:complexType name="SW-SYSTEMCONSTANT-VALUE-SET" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SW-SYSTEMCONSTANT-VALUE-SET"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-SYSTEMCONSTANT-VALUE-SET--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-SYSTEMCONSTANT-VALUE-SET"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DataDefProperties::SwTextProps -->
  <xsd:group name="SW-TEXT-PROPS">
    <xsd:annotation>
      <xsd:documentation>The properties specific for a textual calibration parameter / variable.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-TEXT-PROPS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-MAX-TEXT-SIZE" type="AR:VF" minOccurs="0"/>
      <xsd:element name="SW-FILL-CHARACTER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Filler character for text parameter to pad up to the maximum length &lt;SwMaxTextSize&gt;.
The filler character for texts which are shorter than the maximum permitted text length.
The value will be interpreted according to the encoding specified in the associated base type of the data object., e.g. 0x30 (hex) represents the ASCII character zero as filler character and 0 (dez) represents an end of string as filler character.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="SW-TEXT-PROPS_TYPE__SW-FILL-CHARACTER";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataDefProperties::SwTextProps -->
  <xsd:complexType name="SW-TEXT-PROPS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The properties specific for a textual calibration parameter / variable.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SW-TEXT-PROPS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-TEXT-PROPS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwVariableImpl -->
  <xsd:group name="SW-VARIABLE-IMPL">
    <xsd:annotation>
      <xsd:documentation>This element describes the implementation details of a class attribute which manifests itself as a variable.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-VARIABLE-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-VARIABLE-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SW-VARIABLE-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwVariableImpl -->
  <xsd:complexType name="SW-VARIABLE-IMPL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the implementation details of a class attribute which manifests itself as a variable.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-VARIABLE-IMPL_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-VARIABLE-IMPL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwClass::SwVariablePrototype -->
  <xsd:group name="SW-VARIABLE-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>This element describes the prototype declaration of a class attribute, which appears in the form of a variable.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-VARIABLE-PROTOTYPE_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SW-DATA-DEF-PROPS" type="AR:SW-DATA-DEF-PROPS" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwClass::SwVariablePrototype -->
  <xsd:complexType name="SW-VARIABLE-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes the prototype declaration of a class attribute, which appears in the form of a variable.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-VARIABLE-PROTOTYPE_TYPE";msr.isCond="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IS-SYSCOND"/>
      <xsd:group ref="AR:SW-VARIABLE-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SW-VARIABLE-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SW-VARIABLE-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class DatadictionaryProxies::SwVariableRefProxy -->
  <xsd:group name="SW-VARIABLE-REF-PROXY">
    <xsd:annotation>
      <xsd:documentation>Parent class for several kinds of references to a variable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AR-VARIABLE" type="AR:AR-VARIABLE-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DatadictionaryProxies::SwVariableRefProxy -->
  <xsd:complexType name="SW-VARIABLE-REF-PROXY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Parent class for several kinds of references to a variable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SW-VARIABLE-REF-PROXY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwcBswMapping::SwcBswMapping -->
  <xsd:group name="SWC-BSW-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Maps an SwcInternalBehavior to an BswInternalBehavior. This is required to coordinate the API generation and the scheduling for service components, ECU abstraction components and complex driver components by the RTE and the BSW scheduling mechanisms.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-BEHAVIOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-INTERNAL-BEHAVIOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RUNNABLE-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-BSW-RUNNABLE-MAPPING" type="AR:SWC-BSW-RUNNABLE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SNYCHRONIZED-MODE-GROUPS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-BSW-SYNCHRONIZED-MODE-GROUP-PROTOTYPE" type="AR:SWC-BSW-SYNCHRONIZED-MODE-GROUP-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SWC-BEHAVIOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SWC-INTERNAL-BEHAVIOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SYNCHRONIZED-TRIGGERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-BSW-SYCHRONIZED-TRIGGER" type="AR:SWC-BSW-SYCHRONIZED-TRIGGER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class SwcBswMapping::SwcBswRunnableMapping -->
  <xsd:group name="SWC-BSW-RUNNABLE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Maps a BswModuleEntity to a RunnableEntityif it is implemented as part of a BSW module (in the case of an AUTOSAR Service, a Complex Device Driver or an ECU Abstraction). The mappping can be used by a tool to find relevant information on the behavior, e.g. whether the bswEntity shall be running in interrupt context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-ENTITY-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SWC-RUNNABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:RUNNABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcBswMapping::SwcBswRunnableMapping -->
  <xsd:complexType name="SWC-BSW-RUNNABLE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Maps a BswModuleEntity to a RunnableEntityif it is implemented as part of a BSW module (in the case of an AUTOSAR Service, a Complex Device Driver or an ECU Abstraction). The mappping can be used by a tool to find relevant information on the behavior, e.g. whether the bswEntity shall be running in interrupt context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SWC-BSW-RUNNABLE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwcBswMapping::SwcBswSychronizedTrigger -->
  <xsd:group name="SWC-BSW-SYCHRONIZED-TRIGGER">
    <xsd:annotation>
      <xsd:documentation>Synchronizes a Trigger provided by a component via a port with a Trigger provided by a BSW module or cluster. Only valid if the providing component is also mapped to the providing module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-TRIGGER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcBswMapping::SwcBswSychronizedTrigger -->
  <xsd:complexType name="SWC-BSW-SYCHRONIZED-TRIGGER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Synchronizes a Trigger provided by a component via a port with a Trigger provided by a BSW module or cluster. Only valid if the providing component is also mapped to the providing module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SWC-BSW-SYCHRONIZED-TRIGGER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwcBswMapping::SwcBswSynchronizedModeGroupPrototype -->
  <xsd:group name="SWC-BSW-SYNCHRONIZED-MODE-GROUP-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>Synchronizes a mode group provided by a component via a port with a mode group provided by a BSW module or cluster. Only valid if the providing component is also mapped to the providing module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-MODE-GROUP-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcBswMapping::SwcBswSynchronizedModeGroupPrototype -->
  <xsd:complexType name="SWC-BSW-SYNCHRONIZED-MODE-GROUP-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Synchronizes a mode group provided by a component via a port with a mode group provided by a BSW module or cluster. Only valid if the providing component is also mapped to the providing module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SWC-BSW-SYNCHRONIZED-MODE-GROUP-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SwcImplementation::SwcImplementation -->
  <xsd:group name="SWC-IMPLEMENTATION">
    <xsd:sequence>
      <xsd:element name="BEHAVIOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SWC-INTERNAL-BEHAVIOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PER-INSTANCE-MEMORY-SIZES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PER-INSTANCE-MEMORY-SIZE" type="AR:PER-INSTANCE-MEMORY-SIZE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="REQUIRED-RTE-VENDOR" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Identify a specific RTE vendor. This information is potentially important at the time of integrating (in particular: linking) the application code with the RTE. The semantics is that (if the association exists) the corresponding code has been created to fit to the vendor-mode RTE provided by this specific vendor. Attempting to integrate the code with another RTE generated in vendor mode is in general not possible.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcImplementation::SwcImplementation -->
  <xsd:complexType name="SWC-IMPLEMENTATION" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:IMPLEMENTATION"/>
      <xsd:group ref="AR:SWC-IMPLEMENTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SWC-IMPLEMENTATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SWC-IMPLEMENTATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SwcInternalBehavior::SwcInternalBehavior -->
  <xsd:group name="SWC-INTERNAL-BEHAVIOR">
    <xsd:annotation>
      <xsd:documentation>The internal behavior of an atomic software component describes the RTE relevant aspects of a component, i.e. the runnable entities and the events they respond to.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="AR-TYPED-PER-INSTANCE-MEMORYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE" type="AR:VARIABLE-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPONENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ATOMIC-SOFTWARE-COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EVENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT" type="AR:ASYNCHRONOUS-SERVER-CALL-RETURNS-EVENT"/>
            <xsd:element name="DATA-RECEIVE-ERROR-EVENT" type="AR:DATA-RECEIVE-ERROR-EVENT"/>
            <xsd:element name="DATA-RECEIVED-EVENT" type="AR:DATA-RECEIVED-EVENT"/>
            <xsd:element name="DATA-SEND-COMPLETED-EVENT" type="AR:DATA-SEND-COMPLETED-EVENT"/>
            <xsd:element name="EXTERNAL-TRIGGER-OCCURRED-EVENT" type="AR:EXTERNAL-TRIGGER-OCCURRED-EVENT"/>
            <xsd:element name="INTERNAL-TRIGGER-OCCURRED-EVENT" type="AR:INTERNAL-TRIGGER-OCCURRED-EVENT"/>
            <xsd:element name="MODE-SWITCHED-ACK-EVENT" type="AR:MODE-SWITCHED-ACK-EVENT"/>
            <xsd:element name="OPERATION-INVOKED-EVENT" type="AR:OPERATION-INVOKED-EVENT"/>
            <xsd:element name="SWC-MODE-SWITCH-EVENT" type="AR:SWC-MODE-SWITCH-EVENT"/>
            <xsd:element name="TIMING-EVENT" type="AR:TIMING-EVENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="EXPLICIT-INTER-RUNNABLE-VARIABLES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE" type="AR:VARIABLE-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="HANDLE-TERMINATION-AND-RESTART" type="AR:HANDLE-TERMINATION-AND-RESTART-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute controls the behavior with respect to stopping and restarting. The corresponding AtomicSoftwareComponentType may either not support stop and restart, or support only stop, or support both stop and restart.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IMPLICIT-INTER-RUNNABLE-VARIABLES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE" type="AR:VARIABLE-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INCLUDED-TYPE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INCLUDED-TYPE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:AUTOSAR-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="INSTANTIATION-DATA-DEF-PROPSS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="INSTANTIATION-DATA-DEF-PROPS" type="AR:INSTANTIATION-DATA-DEF-PROPS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PER-INSTANCE-MEMORYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PER-INSTANCE-MEMORY" type="AR:PER-INSTANCE-MEMORY"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PER-INSTANCE-PARAMETERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-DATA-PROTOTYPE" type="AR:PARAMETER-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PORT-API-OPTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PORT-API-OPTION" type="AR:PORT-API-OPTION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RUNNABLES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="RUNNABLE-ENTITY" type="AR:RUNNABLE-ENTITY"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SERVICE-DEPENDENCYS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-SERVICE-DEPENDENCY" type="AR:SWC-SERVICE-DEPENDENCY"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SHARED-PARAMETERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PARAMETER-DATA-PROTOTYPE" type="AR:PARAMETER-DATA-PROTOTYPE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SUPPORTS-MULTIPLE-INSTANTIATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Indicate whether the corresponding software-component can be multiply instantiated on one ECU. In this case the attribute will result in an appropriate component API on programming language level (with or without instance handle).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SwcInternalBehavior::SwcInternalBehavior -->
  <xsd:complexType name="SWC-INTERNAL-BEHAVIOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The internal behavior of an atomic software component describes the RTE relevant aspects of a component, i.e. the runnable entities and the events they respond to.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:INTERNAL-BEHAVIOR"/>
      <xsd:group ref="AR:SWC-INTERNAL-BEHAVIOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SWC-INTERNAL-BEHAVIOR--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SWC-INTERNAL-BEHAVIOR"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class RTEEvents::SwcModeSwitchEvent -->
  <xsd:group name="SWC-MODE-SWITCH-EVENT">
    <xsd:annotation>
      <xsd:documentation>This event is listening to mode changes coming from the StateManager.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACTIVATION" type="AR:MODE-ACTIVATION-KIND" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specifies if the event is activated on entering or exiting the referenced Mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MODE-IREF" type="AR:SWC-MODE-SWITCH-EVENT--MODE-IREF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::SwcModeSwitchEvent -->
  <xsd:complexType name="SWC-MODE-SWITCH-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This event is listening to mode changes coming from the StateManager.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:SWC-MODE-SWITCH-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::SwcModeSwitchEvent_mode -->
  <xsd:group name="SWC-MODE-SWITCH-EVENT--MODE-IREF">
    <xsd:sequence>
      <xsd:element name="R-PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:R-PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-GROUP-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION-GROUP-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE-DECLARATION-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:MODE-DECLARATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::SwcModeSwitchEvent_mode -->
  <xsd:complexType name="SWC-MODE-SWITCH-EVENT--MODE-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:SWC-MODE-SWITCH-EVENT--MODE-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServiceMapping::SwcServiceDependency -->
  <xsd:group name="SWC-SERVICE-DEPENDENCY">
    <xsd:annotation>
      <xsd:documentation>Collects all dependencies of this AtomicSoftwareComponent on an  AUTOSAR Service related to a specific item (e.g. an Nv block, a diagnostic event etc.). It defines the qualitiy of service (ServiceNeeds) of this item as well as (optionally) the role of related ports and/or data of this  AtomicSoftwareComponent. This information is required for tools in order to generate the related basic software configuration and ServiceComponentTypes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ASSIGNED-DATAS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ROLE-BASED-DATA-ASSIGNMENT" type="AR:ROLE-BASED-DATA-ASSIGNMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ASSIGNED-PORTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ROLE-BASED-PORT-ASSIGNMENT" type="AR:ROLE-BASED-PORT-ASSIGNMENT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SERVICE-NEEDS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="COM-MGR-USER-NEEDS" type="AR:COM-MGR-USER-NEEDS"/>
            <xsd:element name="DIAGNOSTIC-COMMUNICATION-NEEDS" type="AR:DIAGNOSTIC-COMMUNICATION-NEEDS"/>
            <xsd:element name="DIAGNOSTIC-EVENT-NEEDS" type="AR:DIAGNOSTIC-EVENT-NEEDS"/>
            <xsd:element name="ECU-STATE-MGR-USER-NEEDS" type="AR:ECU-STATE-MGR-USER-NEEDS"/>
            <xsd:element name="FUNCTION-INHIBITION-NEEDS" type="AR:FUNCTION-INHIBITION-NEEDS"/>
            <xsd:element name="NV-BLOCK-NEEDS" type="AR:NV-BLOCK-NEEDS"/>
            <xsd:element name="OBD-CONTROL-SERVICE-NEEDS" type="AR:OBD-CONTROL-SERVICE-NEEDS"/>
            <xsd:element name="OBD-INFO-SERVICE-NEEDS" type="AR:OBD-INFO-SERVICE-NEEDS"/>
            <xsd:element name="OBD-MONITOR-SERVICE-NEEDS" type="AR:OBD-MONITOR-SERVICE-NEEDS"/>
            <xsd:element name="OBD-PID-SERVICE-NEEDS" type="AR:OBD-PID-SERVICE-NEEDS"/>
            <xsd:element name="OBD-RATIO-SERVICE-NEEDS" type="AR:OBD-RATIO-SERVICE-NEEDS"/>
            <xsd:element name="SERVICE-NEEDS" type="AR:SERVICE-NEEDS"/>
            <xsd:element name="SUPERVISED-ENTITY-NEEDS" type="AR:SUPERVISED-ENTITY-NEEDS"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ServiceMapping::SwcServiceDependency -->
  <xsd:complexType name="SWC-SERVICE-DEPENDENCY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Collects all dependencies of this AtomicSoftwareComponent on an  AUTOSAR Service related to a specific item (e.g. an Nv block, a diagnostic event etc.). It defines the qualitiy of service (ServiceNeeds) of this item as well as (optionally) the role of related ports and/or data of this  AtomicSoftwareComponent. This information is required for tools in order to generate the related basic software configuration and ServiceComponentTypes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SWC-SERVICE-DEPENDENCY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Timing::SwcTiming -->
  <xsd:group name="SWC-TIMING">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints for the
InternalBehavior of one SWC. Thereby, for each InternalBehavior a separate timing can be specified.

A constraint defined at this level holds true for all Implementations of that InternalBehavior.

TimingDescriptions aggregated by SwcTiming are restricted to event chains referring to events which are derived from the classes TDEventVfb and TDEventInternalBehavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BEHAVIOR-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SWC-INTERNAL-BEHAVIOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::SwcTiming -->
  <xsd:complexType name="SWC-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints for the
InternalBehavior of one SWC. Thereby, for each InternalBehavior a separate timing can be specified.

A constraint defined at this level holds true for all Implementations of that InternalBehavior.

TimingDescriptions aggregated by SwcTiming are restricted to event chains referring to events which are derived from the classes TDEventVfb and TDEventInternalBehavior.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TIMING"/>
      <xsd:group ref="AR:SWC-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SWmapping::SwcToEcuMapping -->
  <xsd:group name="SWC-TO-ECU-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Map software components to a specific ECU Instance and optionally to a processing unit. Per ECUInstance/ProcessingUnit pair only one SwcToEcuMapping shall be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPONENT-IN-SYSTEM-INSTANCE-REF" type="AR:COMPONENT-IN-SYSTEM-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-INSTANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PROCESSING-UNIT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PROCESSING-UNIT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SWmapping::SwcToEcuMapping -->
  <xsd:complexType name="SWC-TO-ECU-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Map software components to a specific ECU Instance and optionally to a processing unit. Per ECUInstance/ProcessingUnit pair only one SwcToEcuMapping shall be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SWC-TO-ECU-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SWC-TO-ECU-MAPPING--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SWC-TO-ECU-MAPPING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SWmapping::SwcToEcuMappingConstraint -->
  <xsd:group name="SWC-TO-ECU-MAPPING-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>The System Constraint Description has to describe dedicated and exclusive mapping of SW-Cs to one or more ECUs. Dedicated mapping means that the SW-C can only be mapped to the ECUs it is dedicated to. Exclusive Mapping means that the SW-C cannot be mapped to the ECUs it is excluded from.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENT" type="AR:COMPONENT-IN-SYSTEM-INSTANCE-REF" minOccurs="0"/>
      <xsd:element name="ECU-INSTANCE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ECU-INSTANCE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SWC-TO-ECU-MAPPING-CONSTRAINT-TYPE" type="AR:SWC-TO-ECU-MAPPING-CONSTRAINT-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute determines if dedicated or exclusive mapping is used.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SWmapping::SwcToEcuMappingConstraint -->
  <xsd:complexType name="SWC-TO-ECU-MAPPING-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The System Constraint Description has to describe dedicated and exclusive mapping of SW-Cs to one or more ECUs. Dedicated mapping means that the SW-C can only be mapped to the ECUs it is dedicated to. Exclusive Mapping means that the SW-C cannot be mapped to the ECUs it is excluded from.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:MAPPING-CONSTRAINT"/>
      <xsd:group ref="AR:SWC-TO-ECU-MAPPING-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SWmapping::SwcToImplMapping -->
  <xsd:group name="SWC-TO-IMPL-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Map instances of an AtomicSoftwareComponentType to a specific Implementation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPONENT-IN-SYSTEM-INSTANCE-REF" type="AR:COMPONENT-IN-SYSTEM-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPONENT-IMPLEMENTATION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SWC-IMPLEMENTATION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SWmapping::SwcToImplMapping -->
  <xsd:complexType name="SWC-TO-IMPL-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Map instances of an AtomicSoftwareComponentType to a specific Implementation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SWC-TO-IMPL-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SignalPaths::SwcToSwcOperationArguments -->
  <xsd:group name="SWC-TO-SWC-OPERATION-ARGUMENTS">
    <xsd:annotation>
      <xsd:documentation>The SwcToSwcOperationArguments describes the information (client server operation arguments, plus the operation identification, if required) that are exchanged between two SW Components from exactly one client to one server, or from one server back to one client. The direction attribute defines which direction is described. If direction == IN, all arguments sent from the client to the server are described by the SwcToSwcOperationArguments, in direction == OUT, it's the arguments sent back from server to client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DIRECTION" type="AR:SWC-TO-SWC-OPERATION-ARGUMENTS-DIRECTION-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>direction addressed by this SwcToSwcClientServerOperation element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPERATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="OPERATION-IN-SYSTEM-INSTANCE-REF" type="AR:OPERATION-IN-SYSTEM-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SignalPaths::SwcToSwcOperationArguments -->
  <xsd:complexType name="SWC-TO-SWC-OPERATION-ARGUMENTS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The SwcToSwcOperationArguments describes the information (client server operation arguments, plus the operation identification, if required) that are exchanged between two SW Components from exactly one client to one server, or from one server back to one client. The direction attribute defines which direction is described. If direction == IN, all arguments sent from the client to the server are described by the SwcToSwcOperationArguments, in direction == OUT, it's the arguments sent back from server to client.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SWC-TO-SWC-OPERATION-ARGUMENTS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SignalPaths::SwcToSwcSignal -->
  <xsd:group name="SWC-TO-SWC-SIGNAL">
    <xsd:annotation>
      <xsd:documentation>The SwcToSwcSignal describes the information (data element) that is exchanged between two SW Components. On the SWC Level it is possible that a SW Component sends one data element from one P-Port to two different SW Components (1:n Communication). The SwcToSwcSignal describes exactly the information which is exchanged between one P-Port of a SW Component and one R-Port of another SW Component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF" type="AR:VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SignalPaths::SwcToSwcSignal -->
  <xsd:complexType name="SWC-TO-SWC-SIGNAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The SwcToSwcSignal describes the information (data element) that is exchanged between two SW Components. On the SWC Level it is possible that a SW Component sends one data element from one P-Port to two different SW Components (1:n Communication). The SwcToSwcSignal describes exactly the information which is exchanged between one P-Port of a SW Component and one R-Port of another SW Component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SWC-TO-SWC-SIGNAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ECUCParameterDefTemplate::SymbolicNameReferenceParamDef -->
  <xsd:group name="SYMBOLIC-NAME-REFERENCE-PARAM-DEF">
    <xsd:annotation>
      <xsd:documentation>This specialization of a ReferenceParamDef specifies that the implementation of the reference is done using a symbolic name defined by the referenced Container's shortName.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ECUCParameterDefTemplate::SymbolicNameReferenceParamDef -->
  <xsd:complexType name="SYMBOLIC-NAME-REFERENCE-PARAM-DEF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This specialization of a ReferenceParamDef specifies that the implementation of the reference is done using a symbolic name defined by the referenced Container's shortName.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:PARAM-CONF-MULTIPLICITY"/>
      <xsd:group ref="AR:COMMON-CONFIGURATION-ATTRIBUTES"/>
      <xsd:group ref="AR:REFERENCE-PARAM-DEF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Synopsis::SynArgument -->
  <xsd:group name="SYN-ARGUMENT">
    <xsd:annotation>
      <xsd:documentation>This element describes one particular Argument within the current object synopsis. The name of the argument goes into &lt;itemLabel&gt;. The short description goes in to &lt;desc&gt;. The detailed description goes into &lt;addInfo5&gt;.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SYN-ARGUMENT_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Synopsis::SynArgument -->
  <xsd:complexType name="SYN-ARGUMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element describes one particular Argument within the current object synopsis. The name of the argument goes into &lt;itemLabel&gt;. The short description goes in to &lt;desc&gt;. The detailed description goes into &lt;addInfo5&gt;.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SYN-ARGUMENT_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Synopsis::SynSemantics -->
  <xsd:group name="SYN-SEMANTICS">
    <xsd:annotation>
      <xsd:documentation>This element is used to specify the particular semantics of the objects for which a synopsis is given. &lt;desc&gt; takes an quick description intended for overview tables. &lt;addInfo5&gt; takes a full blown specification.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SYN-SEMANTICS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DESC" type="AR:MULTI-LANGUAGE-OVERVIEW-PARAGRAPH" minOccurs="0"/>
      <xsd:element name="ADD-INFO-5" type="AR:DOCUMENTATION-BLOCK" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Synopsis::SynSemantics -->
  <xsd:complexType name="SYN-SEMANTICS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element is used to specify the particular semantics of the objects for which a synopsis is given. &lt;desc&gt; takes an quick description intended for overview tables. &lt;addInfo5&gt; takes a full blown specification.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SYN-SEMANTICS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SYN-SEMANTICS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Synopsis::SynSynopsis -->
  <xsd:group name="SYN-SYNOPSIS">
    <xsd:annotation>
      <xsd:documentation>This element serves as a semiformal description of the Synopsis of an application arogramming interface. This is mainly intended to be used for generating a programmer's reference manual in MSRREP. Although there is some overlap with &lt;SW-SERVICE&gt; in the MSRSW-Context, this Element can be useful to specifiy a required API. Therfore &lt;SYN-SYNOPIS&gt; is located in free text elements on a paragraph level. &lt;SYN-SYNOPIS&gt; is made such that it can be redered similar to a &lt;labeledList&gt;. In this sense, &lt;synSynopsis&gt; can be considered as a specific form of a &lt;LABELED-LST&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SYN-SYNOPSIS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class Synopsis::SynSynopsis -->
  <xsd:complexType name="SYN-SYNOPSIS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element serves as a semiformal description of the Synopsis of an application arogramming interface. This is mainly intended to be used for generating a programmer's reference manual in MSRREP. Although there is some overlap with &lt;SW-SERVICE&gt; in the MSRSW-Context, this Element can be useful to specifiy a required API. Therfore &lt;SYN-SYNOPIS&gt; is located in free text elements on a paragraph level. &lt;SYN-SYNOPIS&gt; is made such that it can be redered similar to a &lt;labeledList&gt;. In this sense, &lt;synSynopsis&gt; can be considered as a specific form of a &lt;LABELED-LST&gt; .</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__SYN-SYNOPSIS_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class SynchronizationTimingConstraint::SynchronizationTimingConstraint -->
  <xsd:group name="SYNCHRONIZATION-TIMING-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>This constraint is used to restrict the timing behavior of different, but correlated event chains, in regard to synchronization.

Thereby, the following two scenarios are supported:

1) [synchronizationConstraintType=responseSynchronization] An arbitrary number of correlated event chains with a common stimulus, but different responses, where the responses shall occur synchronously with respect to a predefined tolerance.

2) [synchronizationConstraintType=stimulusSynchronization]  An arbitrary number of correlated event chains with a common response, but different stimuli, where the stimuli shall occur synchronously with respect to a predefined tolerance.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SCOPE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SCOPE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TIMING-DESCRIPTION-EVENT-CHAIN--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SYNCHRONIZATION-CONSTRAINT-TYPE" type="AR:SYNCHRONIZATION-TYPE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The specific type of this synchronization constraint.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TOLERANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIME-VALUE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SynchronizationTimingConstraint::SynchronizationTimingConstraint -->
  <xsd:complexType name="SYNCHRONIZATION-TIMING-CONSTRAINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This constraint is used to restrict the timing behavior of different, but correlated event chains, in regard to synchronization.

Thereby, the following two scenarios are supported:

1) [synchronizationConstraintType=responseSynchronization] An arbitrary number of correlated event chains with a common stimulus, but different responses, where the responses shall occur synchronously with respect to a predefined tolerance.

2) [synchronizationConstraintType=stimulusSynchronization]  An arbitrary number of correlated event chains with a common response, but different stimuli, where the stimuli shall occur synchronously with respect to a predefined tolerance.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SYNCHRONIZATION-TIMING-CONSTRAINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ServerCall::SynchronousServerCallPoint -->
  <xsd:group name="SYNCHRONOUS-SERVER-CALL-POINT">
    <xsd:annotation>
      <xsd:documentation>This means that the runnable will block for a response from the server.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ServerCall::SynchronousServerCallPoint -->
  <xsd:complexType name="SYNCHRONOUS-SERVER-CALL-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This means that the runnable will block for a response from the server.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SERVER-CALL-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class SystemTemplate::System -->
  <xsd:group name="SYSTEM">
    <xsd:annotation>
      <xsd:documentation>The top level element of the System Description.
The System description defines five major elements: Topology, Software, Communication, Mapping and Mapping Constraints.

The System element directly aggregates the elements describing the Software, Mapping and Mapping Constraints; it contains a reference to an ASAM FIBEX description specifying Communication and Topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CHAPTERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CHAPTER" type="AR:CHAPTER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="FIBEX-ELEMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="FIBEX-ELEMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:FIBEX-ELEMENT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MAPPING" type="AR:SYSTEM-MAPPING" minOccurs="0"/>
      <xsd:element name="SOFTWARE-COMPOSITION" type="AR:SOFTWARE-COMPOSITION" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SystemTemplate::System -->
  <xsd:complexType name="SYSTEM" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The top level element of the System Description.
The System description defines five major elements: Topology, Software, Communication, Mapping and Mapping Constraints.

The System element directly aggregates the elements describing the Software, Mapping and Mapping Constraints; it contains a reference to an ASAM FIBEX description specifying Communication and Topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:SYSTEM"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SYSTEM--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SYSTEM"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class SystemTemplate::SystemMapping -->
  <xsd:group name="SYSTEM-MAPPING">
    <xsd:annotation>
      <xsd:documentation>The system mapping aggregates all mapping aspects (mapping of SW components to ECUs, mapping of data elements to signals, and mapping constraints).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CLIENT-SERVER-TO-SIGNAL-GROUP-MAPPING" type="AR:CLIENT-SERVER-TO-SIGNAL-GROUP-MAPPING"/>
            <xsd:element name="SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING" type="AR:SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING"/>
            <xsd:element name="SENDER-RECEIVER-TO-SIGNAL-MAPPING" type="AR:SENDER-RECEIVER-TO-SIGNAL-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="ECU-RESOURCE-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ECU-MAPPING" type="AR:ECU-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MAPPING-CONSTRAINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMPONENT-CLUSTERING" type="AR:COMPONENT-CLUSTERING"/>
            <xsd:element name="COMPONENT-SEPARATION" type="AR:COMPONENT-SEPARATION"/>
            <xsd:element name="SWC-TO-ECU-MAPPING-CONSTRAINT" type="AR:SWC-TO-ECU-MAPPING-CONSTRAINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RESOURCE-ESTIMATIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ECU-RESOURCE-ESTIMATION" type="AR:ECU-RESOURCE-ESTIMATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SIGNAL-PATH-CONSTRAINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COMMON-SIGNAL-PATH" type="AR:COMMON-SIGNAL-PATH"/>
            <xsd:element name="FORBIDDEN-SIGNAL-PATH" type="AR:FORBIDDEN-SIGNAL-PATH"/>
            <xsd:element name="PERMISSIBLE-SIGNAL-PATH" type="AR:PERMISSIBLE-SIGNAL-PATH"/>
            <xsd:element name="SEPARATE-SIGNAL-PATH" type="AR:SEPARATE-SIGNAL-PATH"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-IMPL-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-IMPL-MAPPING" type="AR:SWC-TO-IMPL-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SWC-TO-ECU-MAPPING" type="AR:SWC-TO-ECU-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class SystemTemplate::SystemMapping -->
  <xsd:complexType name="SYSTEM-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The system mapping aggregates all mapping aspects (mapping of SW components to ECUs, mapping of data elements to signals, and mapping constraints).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SYSTEM-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::SystemSignal -->
  <xsd:group name="SYSTEM-SIGNAL">
    <xsd:annotation>
      <xsd:documentation>The system signal represents the communication system's view of data exchanged between SW components which reside on different ECUs. The system signals allow to represent this communication in a flattened structure, with exactly one system signal defined for each data element prototype sent and received by connected SW component instances.

According to the COM Specification, signal groups without signals are allowed. These have a "signalLength" = 0. In this case there shall be an "update-bit" configured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-TYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:IMPLEMENTATION-DATA-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DYNAMIC-LENGTH" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The length of dynamic length signals is variable in run-time. Only a maximum length of such a signal is specified in the configuration (attribute length).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INIT-VALUE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Size of the signal in bits. The size needs to be derived from the mapped VariableDataPrototype according to the mapping of primitive DataTypes to BaseTypes as used in the RTE.
Indicates maximum size for dynamic length signals.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::SystemSignal -->
  <xsd:complexType name="SYSTEM-SIGNAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The system signal represents the communication system's view of data exchanged between SW components which reside on different ECUs. The system signals allow to represent this communication in a flattened structure, with exactly one system signal defined for each data element prototype sent and received by connected SW component instances.

According to the COM Specification, signal groups without signals are allowed. These have a "signalLength" = 0. In this case there shall be an "update-bit" configured.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SYSTEM-SIGNAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SYSTEM-SIGNAL--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SYSTEM-SIGNAL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class CoreCommunication::SystemSignalGroup -->
  <xsd:group name="SYSTEM-SIGNAL-GROUP">
    <xsd:annotation>
      <xsd:documentation>A signal group refers to a set of signals that must always be kept together. A signal group is used to guarantee the atomic transfer of AUTOSAR composite data types.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-SIGNAL-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SYSTEM-SIGNAL-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:SYSTEM-SIGNAL--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class CoreCommunication::SystemSignalGroup -->
  <xsd:complexType name="SYSTEM-SIGNAL-GROUP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A signal group refers to a set of signals that must always be kept together. A signal group is used to guarantee the atomic transfer of AUTOSAR composite data types.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:SYSTEM-SIGNAL-GROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="SYSTEM-SIGNAL-GROUP--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SYSTEM-SIGNAL-GROUP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Timing::SystemTiming -->
  <xsd:group name="SYSTEM-TIMING">
    <xsd:annotation>
      <xsd:documentation>A model element used to refine timing descriptions and constraints (from a VfbTiming) at System level, utilizing information about topology, software deployment, and signal mapping described in the System Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SYSTEM-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SYSTEM--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::SystemTiming -->
  <xsd:complexType name="SYSTEM-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A model element used to refine timing descriptions and constraints (from a VfbTiming) at System level, utilizing information about topology, software deployment, and signal mapping described in the System Template.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TIMING"/>
      <xsd:group ref="AR:SYSTEM-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventBsw::TDEventBsw -->
  <xsd:group name="TD-EVENT-BSW">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the interaction between BSW modules.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-MODULE-DESCRIPTION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-MODULE-DESCRIPTION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="BSW-MODULE-ENTRY-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTRY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TD-EVENT-BSW-TYPE" type="AR:TD-EVENT-BSW-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventBsw::TDEventBsw -->
  <xsd:complexType name="TD-EVENT-BSW" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the interaction between BSW modules.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-BSW"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventBswBehavior::TDEventBswBehavior -->
  <xsd:group name="TD-EVENT-BSW-BEHAVIOR">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the BswBehavior of a BSW module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BSW-MODULE-ENTITY-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:BSW-MODULE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TD-EVENT-BSW-BEHAVIOR-TYPE" type="AR:TD-EVENT-BSW-BEHAVIOR-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventBswBehavior::TDEventBswBehavior -->
  <xsd:complexType name="TD-EVENT-BSW-BEHAVIOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the BswBehavior of a BSW module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-BSW-BEHAVIOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventCom::TDEventCom -->
  <xsd:group name="TD-EVENT-COM">
    <xsd:annotation>
      <xsd:documentation>This is the abstract parent class to describe timing events related to communication including the physical layer.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ECU-INSTANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class TDEventCom::TDEventCycleStart -->
  <xsd:group name="TD-EVENT-CYCLE-START">
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class TDEventVfb::TDEventDataElement -->
  <xsd:group name="TD-EVENT-DATA-ELEMENT">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to sender-receiver communication at VFB level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-ELEMENT-IREF" type="AR:TD-EVENT-DATA-ELEMENT--DATA-ELEMENT-IREF" minOccurs="0"/>
      <xsd:element name="TD-EVENT-DATA-ELEMENT-TYPE" type="AR:TD-EVENT-DATA-ELEMENT-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventVfb::TDEventDataElement -->
  <xsd:complexType name="TD-EVENT-DATA-ELEMENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to sender-receiver communication at VFB level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-DATA-ELEMENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="TD-EVENT-DATA-ELEMENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TD-EVENT-DATA-ELEMENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class _instanceRef::TDEventDataElement_dataElement -->
  <xsd:group name="TD-EVENT-DATA-ELEMENT--DATA-ELEMENT-IREF">
    <xsd:sequence>
      <xsd:element name="PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPONENT-PROTOTYPE-REF" minOccurs="0" maxOccurs="unbounded">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="DATA-ELEMENT-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::TDEventDataElement_dataElement -->
  <xsd:complexType name="TD-EVENT-DATA-ELEMENT--DATA-ELEMENT-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:TD-EVENT-DATA-ELEMENT--DATA-ELEMENT-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TDEventCom::TDEventFrClusterCycleStart -->
  <xsd:group name="TD-EVENT-FR-CLUSTER-CYCLE-START">
    <xsd:annotation>
      <xsd:documentation>This is used to describe the timing event related to a point in time where a communication cycle starts on a FlexRay cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FR-CLUSTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FLEXRAY-CLUSTER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventCom::TDEventFrClusterCycleStart -->
  <xsd:complexType name="TD-EVENT-FR-CLUSTER-CYCLE-START" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe the timing event related to a point in time where a communication cycle starts on a FlexRay cluster.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-COM"/>
      <xsd:group ref="AR:TD-EVENT-FR-CLUSTER-CYCLE-START"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventCom::TDEventFrame -->
  <xsd:group name="TD-EVENT-FRAME">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the exchange of frames between the communication controller and the bus specific (FlexRay / CAN / LIN) Interface BSW module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="FRAME-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:FRAME--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHYSICAL-CHANNEL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PHYSICAL-CHANNEL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TD-EVENT-TYPE" type="AR:TD-EVENT-FRAME-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventCom::TDEventFrame -->
  <xsd:complexType name="TD-EVENT-FRAME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the exchange of frames between the communication controller and the bus specific (FlexRay / CAN / LIN) Interface BSW module.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-COM"/>
      <xsd:group ref="AR:TD-EVENT-FRAME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventCom::TDEventIPdu -->
  <xsd:group name="TD-EVENT-I-PDU">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the exchange of I-PDUs between the bus specific (FlexRay / CAN / LIN) Interface BSW module and COM.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHYSICAL-CHANNEL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PHYSICAL-CHANNEL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TD-EVENT-TYPE" type="AR:TD-EVENT-I-PDU-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventCom::TDEventIPdu -->
  <xsd:complexType name="TD-EVENT-I-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the exchange of I-PDUs between the bus specific (FlexRay / CAN / LIN) Interface BSW module and COM.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-COM"/>
      <xsd:group ref="AR:TD-EVENT-I-PDU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventCom::TDEventISignal -->
  <xsd:group name="TD-EVENT-I-SIGNAL">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the exchange of I-Signals between COM and RTE.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="I-SIGNAL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-SIGNAL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHYSICAL-CHANNEL-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PHYSICAL-CHANNEL--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TD-EVENT-TYPE" type="AR:TD-EVENT-I-SIGNAL-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventCom::TDEventISignal -->
  <xsd:complexType name="TD-EVENT-I-SIGNAL" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the exchange of I-Signals between COM and RTE.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-COM"/>
      <xsd:group ref="AR:TD-EVENT-I-SIGNAL"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventInternalBehavior::TDEventInternalBehavior -->
  <xsd:group name="TD-EVENT-INTERNAL-BEHAVIOR">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the InternalBehavior of a SWC.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENT-IREF" type="AR:TD-EVENT-INTERNAL-BEHAVIOR--COMPONENT-IREF" minOccurs="0"/>
      <xsd:element name="RUNNABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:RUNNABLE-ENTITY--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TD-EVENT-INTERNAL-BEHAVIOR-TYPE" type="AR:TD-EVENT-INTERNAL-BEHAVIOR-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventInternalBehavior::TDEventInternalBehavior -->
  <xsd:complexType name="TD-EVENT-INTERNAL-BEHAVIOR" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to the InternalBehavior of a SWC.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-INTERNAL-BEHAVIOR"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class _instanceRef::TDEventInternalBehavior_component -->
  <xsd:group name="TD-EVENT-INTERNAL-BEHAVIOR--COMPONENT-IREF">
    <xsd:sequence>
      <xsd:element name="COMPONENT-PROTOTYPE-REF" minOccurs="0" maxOccurs="unbounded">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-COMPONENT-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::TDEventInternalBehavior_component -->
  <xsd:complexType name="TD-EVENT-INTERNAL-BEHAVIOR--COMPONENT-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:TD-EVENT-INTERNAL-BEHAVIOR--COMPONENT-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TDEventVfb::TDEventOperation -->
  <xsd:group name="TD-EVENT-OPERATION">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to client-server communication at VFB level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OPERATION-IREF" type="AR:TD-EVENT-OPERATION--OPERATION-IREF" minOccurs="0"/>
      <xsd:element name="TD-EVENT-OPERATION-TYPE" type="AR:TD-EVENT-OPERATION-TYPE-ENUM" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventVfb::TDEventOperation -->
  <xsd:complexType name="TD-EVENT-OPERATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to describe timing events related to client-server communication at VFB level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-OPERATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="TD-EVENT-OPERATION--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TD-EVENT-OPERATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class _instanceRef::TDEventOperation_operation -->
  <xsd:group name="TD-EVENT-OPERATION--OPERATION-IREF">
    <xsd:sequence>
      <xsd:element name="PORT-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="COMPONENT-PROTOTYPE-REF" minOccurs="0" maxOccurs="unbounded">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="OPERATION-PROTOTYPE-REF">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OPERATION-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class _instanceRef::TDEventOperation_operation -->
  <xsd:complexType name="TD-EVENT-OPERATION--OPERATION-IREF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:TD-EVENT-OPERATION--OPERATION-IREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TDEventCom::TDEventTTCanCycleStart -->
  <xsd:group name="TD-EVENT-TT-CAN-CYCLE-START">
    <xsd:sequence>
      <xsd:element name="TT-CAN-CLUSTER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TTCAN-CLUSTER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TDEventCom::TDEventTTCanCycleStart -->
  <xsd:complexType name="TD-EVENT-TT-CAN-CYCLE-START" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TD-EVENT-COM"/>
      <xsd:group ref="AR:TD-EVENT-TT-CAN-CYCLE-START"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TDEventVfb::TDEventVfb -->
  <xsd:group name="TD-EVENT-VFB">
    <xsd:annotation>
      <xsd:documentation>This is the abstract parent class to describe timing events at VFB level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class Fibex4Multiplatform::TargetIPduRef -->
  <xsd:group name="TARGET-I-PDU-REF">
    <xsd:annotation>
      <xsd:documentation>Target destination of the referencing mapping.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DEFAULT-VALUE" type="AR:PDU-MAPPING-DEFAULT-VALUE" minOccurs="0"/>
      <xsd:element name="TARGET-I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-PDU-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Fibex4Multiplatform::TargetIPduRef -->
  <xsd:complexType name="TARGET-I-PDU-REF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Target destination of the referencing mapping.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TARGET-I-PDU-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class OasisExchangeTable::Tbody -->
  <xsd:group name="TBODY">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tbody&gt; to generate all of the rows in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TBODY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ROW" type="AR:ROW" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class OasisExchangeTable::Tbody -->
  <xsd:attributeGroup name="TBODY">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tbody&gt; to generate all of the rows in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TBODY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="VALIGN" type="AR:VALIGN-ENUM">
      <xsd:annotation>
        <xsd:documentation>specifies how the cell entries shall be aligned. Default is "TOP"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="TOP";msr.id="TBODY_TYPE__TBODY_TYPE__VALIGN";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class OasisExchangeTable::Tbody -->
  <xsd:complexType name="TBODY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tbody&gt; to generate all of the rows in a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TBODY_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TBODY"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:TBODY"/>
  </xsd:complexType>
  <!-- element group for class BasicElements::Temperature -->
  <xsd:group name="TEMPERATURE">
    <xsd:annotation>
      <xsd:documentation>General element to describe temperature ranges and need for cooling/heating.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NEEDS-COOLING" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>These attributes describe that there is an active cooling system required for this HW Element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NEEDS-HEATING" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>These attributes describe that there is an active heating system required for this HW Element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPERATION-MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>It describes the temperature range (max) in which the HW Element can be operated.
Unit: Kelvin (K)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPERATION-MIN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>It describes the temperature range (min) in which the HW Element can be operated.
Unit: Kelvin (K)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPERATION-TYPICAL" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>It describes the temperature range (typical) in which the HW Element can be operated.
Unit: Kelvin (K)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STORAGE-MAX" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The storage temperature defines maximum temperature the device is allowed to be stored. The HW Element is not in an operational state.
Unit: Kelvin (K)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STORAGE-MIN" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The storage temperature defines minimum temperature the device is allowed to be stored. The HW Element is not in an operational state.
Unit: Kelvin (K)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BasicElements::Temperature -->
  <xsd:complexType name="TEMPERATURE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>General element to describe temperature ranges and need for cooling/heating.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TEMPERATURE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Formula::TexMath -->
  <xsd:group name="TEX-MATH">
    <xsd:annotation>
      <xsd:documentation>Use &lt;texMath&gt; to insert a TeX formula. A TeX formula can be processed by a TeX or a LaTeX processor.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TEX-MATH_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class Formula::TexMath -->
  <xsd:attributeGroup name="TEX-MATH">
    <xsd:annotation>
      <xsd:documentation>Use &lt;texMath&gt; to insert a TeX formula. A TeX formula can be processed by a TeX or a LaTeX processor.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TEX-MATH_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="XMLSPACE" type="AR:XMLSPACE-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates that whitespace must be preserved.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="TEX-MATH_TYPE__TEX-MATH_TYPE__xml:space";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class Formula::TexMath -->
  <xsd:complexType name="TEX-MATH" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;texMath&gt; to insert a TeX formula. A TeX formula can be processed by a TeX or a LaTeX processor.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TEX-MATH_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:TEX-MATH"/>
  </xsd:complexType>
  <!-- element group for class ECUCDescriptionTemplate::TextualParameterValue -->
  <xsd:group name="TEXTUAL-PARAMETER-VALUE">
    <xsd:annotation>
      <xsd:documentation>Holding a value which is not subject to variation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Value of the parameter, not subject to variant handling.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ECUCDescriptionTemplate::TextualParameterValue -->
  <xsd:complexType name="TEXTUAL-PARAMETER-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Holding a value which is not subject to variation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:PARAMETER-VALUE"/>
      <xsd:group ref="AR:TEXTUAL-PARAMETER-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class OasisExchangeTable::Tgroup -->
  <xsd:group name="TGROUP">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tgroup&gt; to create a table group within a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TGROUP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COLSPEC" type="AR:COLSPEC" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="THEAD" type="AR:TBODY" minOccurs="0"/>
      <xsd:element name="TBODY" type="AR:TBODY" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class OasisExchangeTable::Tgroup -->
  <xsd:attributeGroup name="TGROUP">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tgroup&gt; to create a table group within a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TGROUP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="ALIGN" type="AR:ALIGN-ENUM">
      <xsd:annotation>
        <xsd:documentation>Specifies how the cell entries shall be aligned. Default is "LEFT"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="LEFT";msr.id="TGROUP_TYPE__TGROUP_TYPE__ALIGN";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="COLS" type="xsd:string"/>
    <xsd:attribute name="COLSEP" type="xsd:string"/>
    <xsd:attribute name="ROWSEP" type="xsd:string"/>
  </xsd:attributeGroup>
  <!-- complex type for class OasisExchangeTable::Tgroup -->
  <xsd:complexType name="TGROUP" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tgroup&gt; to create a table group within a table.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TGROUP_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TGROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:TGROUP"/>
  </xsd:complexType>
  <!-- element group for class BasicElements::TimeRange -->
  <xsd:group name="TIME-RANGE">
    <xsd:sequence>
      <xsd:element name="MAX" type="xsd:double" minOccurs="0"/>
      <xsd:element name="MIN" type="xsd:double" minOccurs="0"/>
      <xsd:element name="TYPICAL" type="xsd:double" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class BasicElements::TimeRange -->
  <xsd:complexType name="TIME-RANGE" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:TIME-RANGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::TimeRangeType -->
  <xsd:group name="TIME-RANGE-TYPE">
    <xsd:annotation>
      <xsd:documentation>The timeRange can be specified with the value attribute. Optionally a tolerance can be defined.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TOLERANCE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ABSOLUTE-TOLERANCE" type="AR:ABSOLUTE-TOLERANCE"/>
            <xsd:element name="RELATIVE-TOLERANCE" type="AR:RELATIVE-TOLERANCE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="VALUE" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Average value of a date (in seconds)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::TimeRangeType -->
  <xsd:complexType name="TIME-RANGE-TYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The timeRange can be specified with the value attribute. Optionally a tolerance can be defined.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TIME-RANGE-TYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::TimeRangeTypeTolerance -->
  <xsd:group name="TIME-RANGE-TYPE-TOLERANCE">
    <xsd:annotation>
      <xsd:documentation>Maximum allowable deviation</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class TimeValue::TimeValue -->
  <xsd:group name="TIME-VALUE">
    <xsd:annotation>
      <xsd:documentation>This is used to specify a time value based on cse code types.

1              1 µsec     Time
2	10 µsec	Time
3	1 msec	Time
4	10 msec	Time
5	100 msec	Time
6	1 sec	Time
7	10 sec	Time
8	1 min	Time
9	1 h	Time
10	1 d	Time
100	Angular degrees	Angle	
101	Revolutions 360 degrees	Angle	
102	Cycle 720 degrees	Angle	e.g. in case of IC engines
103	Cylinder segment	Combustion	e.g. in case of IC engines
998	When frame available	Time	Source defined in the ASAP 2 keyword, 
FRAME
999	Always if there is new value		Calculation of a new upper range limit after receiving a new partial value, e.g. when calculating a complex trigger condition
1000	Non deterministic		Without fixed scaling

If, for example, the value in swCseCodeFactor is 360 and the value in swCseCode is 100, this is equivalent to the value 1 in swCseCodeFactor and the value 101 in swCseCode .</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CSE-CODE" type="xsd:string" minOccurs="0"/>
      <xsd:element name="CSE-CODE-FACTOR" type="xsd:integer" minOccurs="0"/>
      <xsd:element name="VALUE" type="xsd:double" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TimeValue::TimeValue -->
  <xsd:complexType name="TIME-VALUE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is used to specify a time value based on cse code types.

1              1 µsec     Time
2	10 µsec	Time
3	1 msec	Time
4	10 msec	Time
5	100 msec	Time
6	1 sec	Time
7	10 sec	Time
8	1 min	Time
9	1 h	Time
10	1 d	Time
100	Angular degrees	Angle	
101	Revolutions 360 degrees	Angle	
102	Cycle 720 degrees	Angle	e.g. in case of IC engines
103	Cylinder segment	Combustion	e.g. in case of IC engines
998	When frame available	Time	Source defined in the ASAP 2 keyword, 
FRAME
999	Always if there is new value		Calculation of a new upper range limit after receiving a new partial value, e.g. when calculating a complex trigger condition
1000	Non deterministic		Without fixed scaling

If, for example, the value in swCseCodeFactor is 360 and the value in swCseCode is 100, this is equivalent to the value 1 in swCseCodeFactor and the value 101 in swCseCode .</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TIME-VALUE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <xsd:simpleType name="TIME-VALUE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TIME-VALUE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Peripherals::Timer -->
  <xsd:group name="TIMER">
    <xsd:annotation>
      <xsd:documentation>The simplest form is an array of directly coupled D-flip flops, which build up a shift register, with separate output from each stage, thus forming a time-register. A clock signal at the input increments the value of the register. Some cases uses some logic in combination of the shift register in order to form a special adopted representation of the information or to fulfil special requirements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CAN-BE-RE-INIT" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines if the peripheral can automatically be reset during operation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="COUNT-DIRECTION" type="AR:TIMER-COUNT-DIRECTION-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The direction defines if the counter of a timer counts up, down or if it can be selected.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MODE" type="AR:TIMER-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>single: The timer is counted from a defined start value to a defined end value and then stopped. 
continuous: The timer is counted from a defined start value to a defined end value and then restarted with the start value.
free: The timer is counted always to the available maximum value of the timer structure, then a wrap around occurs and the timer starts again from the HW defined startpoint; e.g. a 16 bit Timer counts from 0(hex)....0FFFF(hex), then after the overflow again from 0(hex)....0FFFF(hex).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::Timer -->
  <xsd:complexType name="TIMER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The simplest form is an array of directly coupled D-flip flops, which build up a shift register, with separate output from each stage, thus forming a time-register. A clock signal at the input increments the value of the register. Some cases uses some logic in combination of the shift register in order to form a special adopted representation of the information or to fulfil special requirements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:GENERAL-PURPOSE-TIMER"/>
      <xsd:group ref="AR:TIMER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Timing::Timing -->
  <xsd:group name="TIMING">
    <xsd:annotation>
      <xsd:documentation>The abstract parent class of the different template specific timing extensions.

Depending on the specific timing extension (VfbTiming, SwcTiming, SystemTiming, BswModuleTiming, EcuTiming) the timing descriptions and timing constraints, that can be used to specify the timing behavior, are restricted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIMING-CONSTRAINTS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="ARBITRARY-EVENT-TRIGGERING" type="AR:ARBITRARY-EVENT-TRIGGERING"/>
            <xsd:element name="BURST-PATTERN-EVENT-TRIGGERING" type="AR:BURST-PATTERN-EVENT-TRIGGERING"/>
            <xsd:element name="CONCRETE-PATTERN-EVENT-TRIGGERING" type="AR:CONCRETE-PATTERN-EVENT-TRIGGERING"/>
            <xsd:element name="DATA-ELEMENT-INPUT-LATENCY-CONSTRAINT" type="AR:DATA-ELEMENT-INPUT-LATENCY-CONSTRAINT"/>
            <xsd:element name="DATA-ELEMENT-OUTPUT-LATENCY-CONSTRAINT" type="AR:DATA-ELEMENT-OUTPUT-LATENCY-CONSTRAINT"/>
            <xsd:element name="EXECUTION-ORDER-CONSTRAINT" type="AR:EXECUTION-ORDER-CONSTRAINT"/>
            <xsd:element name="LATENCY-TIMING-CONSTRAINT" type="AR:LATENCY-TIMING-CONSTRAINT"/>
            <xsd:element name="OPERATION-INPUT-LATENCY-CONSTRAINT" type="AR:OPERATION-INPUT-LATENCY-CONSTRAINT"/>
            <xsd:element name="OPERATION-OUTPUT-LATENCY-CONSTRAINT" type="AR:OPERATION-OUTPUT-LATENCY-CONSTRAINT"/>
            <xsd:element name="PERIODIC-EVENT-TRIGGERING" type="AR:PERIODIC-EVENT-TRIGGERING"/>
            <xsd:element name="SENSOR-ACTUATOR-LATENCY-CONSTRAINT" type="AR:SENSOR-ACTUATOR-LATENCY-CONSTRAINT"/>
            <xsd:element name="SPORADIC-EVENT-TRIGGERING" type="AR:SPORADIC-EVENT-TRIGGERING"/>
            <xsd:element name="SYNCHRONIZATION-TIMING-CONSTRAINT" type="AR:SYNCHRONIZATION-TIMING-CONSTRAINT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TIMING-DESCRIPTIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TD-EVENT-BSW" type="AR:TD-EVENT-BSW"/>
            <xsd:element name="TD-EVENT-BSW-BEHAVIOR" type="AR:TD-EVENT-BSW-BEHAVIOR"/>
            <xsd:element name="TD-EVENT-DATA-ELEMENT" type="AR:TD-EVENT-DATA-ELEMENT"/>
            <xsd:element name="TD-EVENT-FR-CLUSTER-CYCLE-START" type="AR:TD-EVENT-FR-CLUSTER-CYCLE-START"/>
            <xsd:element name="TD-EVENT-FRAME" type="AR:TD-EVENT-FRAME"/>
            <xsd:element name="TD-EVENT-I-PDU" type="AR:TD-EVENT-I-PDU"/>
            <xsd:element name="TD-EVENT-I-SIGNAL" type="AR:TD-EVENT-I-SIGNAL"/>
            <xsd:element name="TD-EVENT-INTERNAL-BEHAVIOR" type="AR:TD-EVENT-INTERNAL-BEHAVIOR"/>
            <xsd:element name="TD-EVENT-OPERATION" type="AR:TD-EVENT-OPERATION"/>
            <xsd:element name="TD-EVENT-TT-CAN-CYCLE-START" type="AR:TD-EVENT-TT-CAN-CYCLE-START"/>
            <xsd:element name="TIMING-DESCRIPTION-EVENT-CHAIN" type="AR:TIMING-DESCRIPTION-EVENT-CHAIN"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- element group for class TimingConstraint::TimingConstraint -->
  <xsd:group name="TIMING-CONSTRAINT">
    <xsd:annotation>
      <xsd:documentation>The abstract parent class of different timing constraints supported by the Timing extension.

A concrete timing constraint is used to bound the timing behavior of the model elements in its scope.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class TimingDescription::TimingDescription -->
  <xsd:group name="TIMING-DESCRIPTION">
    <xsd:annotation>
      <xsd:documentation>The abstract parent class of the model elements that are used to define the scope of a timing constraint.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class TimingDescription::TimingDescriptionEvent -->
  <xsd:group name="TIMING-DESCRIPTION-EVENT">
    <xsd:annotation>
      <xsd:documentation>A TimingDescriptionEvent represents a point in time where a specific system behavior can be observed. According to the view on the system and the scope different types of events are defined.

In order to avoid confusion with existing event descriptions in the AUTOSAR templates the timing specific event types use the prefix TD.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <xsd:simpleType name="TIMING-DESCRIPTION-EVENT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TD-EVENT-BSW"/>
      <xsd:enumeration value="TD-EVENT-BSW-BEHAVIOR"/>
      <xsd:enumeration value="TD-EVENT-DATA-ELEMENT"/>
      <xsd:enumeration value="TD-EVENT-FR-CLUSTER-CYCLE-START"/>
      <xsd:enumeration value="TD-EVENT-FRAME"/>
      <xsd:enumeration value="TD-EVENT-I-PDU"/>
      <xsd:enumeration value="TD-EVENT-I-SIGNAL"/>
      <xsd:enumeration value="TD-EVENT-INTERNAL-BEHAVIOR"/>
      <xsd:enumeration value="TD-EVENT-OPERATION"/>
      <xsd:enumeration value="TD-EVENT-TT-CAN-CYCLE-START"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class TimingDescription::TimingDescriptionEventChain -->
  <xsd:group name="TIMING-DESCRIPTION-EVENT-CHAIN">
    <xsd:annotation>
      <xsd:documentation>An event chain describes the temporal correlation between two observable events, referred to as stimulus and response, that have a functional dependency.

Event chains can be hierarchically decomposed into an arbitrary number of sub-chains.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="RESPONSE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIMING-DESCRIPTION-EVENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SEGMENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="SEGMENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TIMING-DESCRIPTION-EVENT-CHAIN--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="STIMULUS-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TIMING-DESCRIPTION-EVENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TimingDescription::TimingDescriptionEventChain -->
  <xsd:complexType name="TIMING-DESCRIPTION-EVENT-CHAIN" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An event chain describes the temporal correlation between two observable events, referred to as stimulus and response, that have a functional dependency.

Event chains can be hierarchically decomposed into an arbitrary number of sub-chains.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TIMING-DESCRIPTION-EVENT-CHAIN"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="TIMING-DESCRIPTION-EVENT-CHAIN--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TIMING-DESCRIPTION-EVENT-CHAIN"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class RTEEvents::TimingEvent -->
  <xsd:group name="TIMING-EVENT">
    <xsd:annotation>
      <xsd:documentation>TimingEvent references the runnable that need to be started in response to the TimingEvent</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PERIOD" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Period of timing event in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::TimingEvent -->
  <xsd:complexType name="TIMING-EVENT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TimingEvent references the runnable that need to be started in response to the TimingEvent</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:RTE-EVENT"/>
      <xsd:group ref="AR:TIMING-EVENT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Chapters::Topic1 -->
  <xsd:group name="TOPIC-1">
    <xsd:annotation>
      <xsd:documentation>Use &lt;topic1&gt; to generate a closed sense unit within a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="AR:TOPIC-CONTENT-OR-MSR-QUERY"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class Chapters::Topic1 -->
  <xsd:attributeGroup name="TOPIC-1">
    <xsd:annotation>
      <xsd:documentation>Use &lt;topic1&gt; to generate a closed sense unit within a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="HELP-ENTRY" type="xsd:string"/>
    <xsd:attribute name="KEEP-WITH-PREVIOUS" type="AR:KEEP-WITH-PREVIOUS-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class Chapters::Topic1 -->
  <xsd:complexType name="TOPIC-1" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;topic1&gt; to generate a closed sense unit within a documentation.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TOPIC-1_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TOPIC-1"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
    <xsd:attributeGroup ref="AR:TOPIC-1"/>
  </xsd:complexType>
  <!-- element group for class Chapters::TopicContent -->
  <xsd:group name="TOPIC-CONTENT">
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:group ref="AR:DOCUMENTATION-BLOCK"/>
        </xsd:choice>
        <xsd:element name="TABLE" type="AR:OASIS-EXCHANGE-TABLE" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class Chapters::TopicContent -->
  <xsd:complexType name="TOPIC-CONTENT" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:TOPIC-CONTENT"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Chapters::TopicContentOrMsrQuery -->
  <xsd:group name="TOPIC-CONTENT-OR-MSR-QUERY">
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="MSR-QUERY-P-1" type="AR:MSR-QUERY-P-1" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:group ref="AR:TOPIC-CONTENT"/>
        </xsd:choice>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class Chapters::TopicContentOrMsrQuery -->
  <xsd:complexType name="TOPIC-CONTENT-OR-MSR-QUERY" abstract="false" mixed="false">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:TOPIC-CONTENT-OR-MSR-QUERY"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Chapters::TopicOrMsrQuery -->
  <xsd:group name="TOPIC-OR-MSR-QUERY">
    <xsd:annotation>
      <xsd:documentation>This class provides the alternative of a Topic with an MsrQuery which delivers a topic.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="special__NCOI-1_topics_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="TOPIC-1" type="AR:TOPIC-1" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="MSR-QUERY-TOPIC-1" type="AR:MSR-QUERY-TOPIC-1" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class Chapters::TopicOrMsrQuery -->
  <xsd:complexType name="TOPIC-OR-MSR-QUERY" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This class provides the alternative of a Topic with an MsrQuery which delivers a topic.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="special__NCOI-1_topics_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:TOPIC-OR-MSR-QUERY"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TransportProtocols::TpAddress -->
  <xsd:group name="TP-ADDRESS">
    <xsd:annotation>
      <xsd:documentation>An ECUs TP address on the referenced channel. This represents the diagnostic Address.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TP-ADDRESS" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>An ECUs TP address on the referenced channel. This represents the diagnostic Address.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::TpAddress -->
  <xsd:complexType name="TP-ADDRESS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>An ECUs TP address on the referenced channel. This represents the diagnostic Address.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TP-ADDRESS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="TP-ADDRESS--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TP-ADDRESS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class TransportProtocols::TpConfig -->
  <xsd:group name="TP-CONFIG">
    <xsd:annotation>
      <xsd:documentation>Contains all configuration elements for AUTOSAR TP.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class TransportProtocols::TpEcu -->
  <xsd:group name="TP-ECU">
    <xsd:annotation>
      <xsd:documentation>ECU specific TP configuration parameters. Each TpEcu element has a reference to exactly one ECUInstance in the topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CYCLE-TIME-MAIN-FUNCTION" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The period between successive calls to the Main Function of the ASR TP. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ECU-INSTANCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:ECU-INSTANCE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TransportProtocols::TpEcu -->
  <xsd:complexType name="TP-ECU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>ECU specific TP configuration parameters. Each TpEcu element has a reference to exactly one ECUInstance in the topology.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TP-ECU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::TransmissionAcknowledgementRequest -->
  <xsd:group name="TRANSMISSION-ACKNOWLEDGEMENT-REQUEST">
    <xsd:annotation>
      <xsd:documentation>Requests transmission acknowledgement that data has been sent successfully. Success/failure is reported via a SendPoint of a Runnable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Number of seconds before an error is reported or in case of allowed redundancy, the value is sent again.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::TransmissionAcknowledgementRequest -->
  <xsd:complexType name="TRANSMISSION-ACKNOWLEDGEMENT-REQUEST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Requests transmission acknowledgement that data has been sent successfully. Success/failure is reported via a SendPoint of a Runnable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TRANSMISSION-ACKNOWLEDGEMENT-REQUEST"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::TransmissionModeCondition -->
  <xsd:group name="TRANSMISSION-MODE-CONDITION">
    <xsd:annotation>
      <xsd:documentation>Possibility to attach a condition to each signal within an I-PDU.

If at least one condition evaluates to true,
TRANSMISSION MODE True shall be used for this I-Pdu. In all other cases, the TRANSMISSION MODE FALSE shall be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-FILTER" type="AR:DATA-FILTER" minOccurs="0"/>
      <xsd:element name="SIGNAL-IN-I-PDU-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:I-SIGNAL-TO-I-PDU-MAPPING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::TransmissionModeCondition -->
  <xsd:complexType name="TRANSMISSION-MODE-CONDITION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Possibility to attach a condition to each signal within an I-PDU.

If at least one condition evaluates to true,
TRANSMISSION MODE True shall be used for this I-Pdu. In all other cases, the TRANSMISSION MODE FALSE shall be used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TRANSMISSION-MODE-CONDITION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::TransmissionModeDeclaration -->
  <xsd:group name="TRANSMISSION-MODE-DECLARATION">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR COM provides the possibility to define two different TRANSMISSION MODES (True and False) for each I-PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRANSMISSION-MODE-CONDITIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TRANSMISSION-MODE-CONDITION" type="AR:TRANSMISSION-MODE-CONDITION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TRANSMISSION-MODE-FALSE-TIMING" type="AR:TRANSMISSION-MODE-TIMING" minOccurs="0"/>
      <xsd:element name="TRANSMISSION-MODE-TRUE-TIMING" type="AR:TRANSMISSION-MODE-TIMING" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::TransmissionModeDeclaration -->
  <xsd:complexType name="TRANSMISSION-MODE-DECLARATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR COM provides the possibility to define two different TRANSMISSION MODES (True and False) for each I-PDU.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TRANSMISSION-MODE-DECLARATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::TransmissionModeTiming -->
  <xsd:group name="TRANSMISSION-MODE-TIMING">
    <xsd:annotation>
      <xsd:documentation>If the COM Transmission Mode is false the timing is aggregated by the TransmissionModeTiming element in the role of transmissionModeFalseTiming. 

 If the COM Transmission Mode is true the timing is aggregated by the TransmissionModeTiming element in the role of transmissionModeTrueTiming.  

COM supports the following Transmission Modes: 
Periodic (Cyclic Timing)
Direct /n-times (EventControlledTiming)
Mixed (Cyclic and EventControlledTiming are assigned)
None (no timing is assigned)</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CYCLIC-TIMING" type="AR:CYCLIC-TIMING" minOccurs="0"/>
      <xsd:element name="EVENT-CONTROLLED-TIMING" type="AR:EVENT-CONTROLLED-TIMING" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::TransmissionModeTiming -->
  <xsd:complexType name="TRANSMISSION-MODE-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>If the COM Transmission Mode is false the timing is aggregated by the TransmissionModeTiming element in the role of transmissionModeFalseTiming. 

 If the COM Transmission Mode is true the timing is aggregated by the TransmissionModeTiming element in the role of transmissionModeTrueTiming.  

COM supports the following Transmission Modes: 
Periodic (Cyclic Timing)
Direct /n-times (EventControlledTiming)
Mixed (Cyclic and EventControlledTiming are assigned)
None (no timing is assigned)</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TRANSMISSION-MODE-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TriggerDeclaration::Trigger -->
  <xsd:group name="TRIGGER">
    <xsd:annotation>
      <xsd:documentation>A trigger which is provided (i.e. released) or required (i.e.used to activate something) in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGER-PERIOD" type="AR:TRIGGER-PERIOD" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TriggerDeclaration::Trigger -->
  <xsd:complexType name="TRIGGER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A trigger which is provided (i.e. released) or required (i.e.used to activate something) in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:TRIGGER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="TRIGGER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TRIGGER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class PortInterface::TriggerInterface -->
  <xsd:group name="TRIGGER-INTERFACE">
    <xsd:annotation>
      <xsd:documentation>A trigger interface declares a number of triggers that can be sent by an trigger source.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGERS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TRIGGER" type="AR:TRIGGER"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::TriggerInterface -->
  <xsd:complexType name="TRIGGER-INTERFACE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A trigger interface declares a number of triggers that can be sent by an trigger source.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-CLASSIFIER"/>
      <xsd:group ref="AR:PORT-INTERFACE"/>
      <xsd:group ref="AR:TRIGGER-INTERFACE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::TriggerInterfaceMapping -->
  <xsd:group name="TRIGGER-INTERFACE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named Triggers in context of two different TriggerInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="TRIGGER-MAPPING" type="AR:TRIGGER-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::TriggerInterfaceMapping -->
  <xsd:complexType name="TRIGGER-INTERFACE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named Triggers in context of two different TriggerInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TRIGGER-INTERFACE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class TriggerDeclaration::TriggerMapping -->
  <xsd:group name="TRIGGER-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named Triggers in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="TRIGGER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TriggerDeclaration::TriggerMapping -->
  <xsd:complexType name="TRIGGER-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named Triggers in the given context.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TRIGGER-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TriggerDeclaration::TriggerPeriod -->
  <xsd:group name="TRIGGER-PERIOD">
    <xsd:annotation>
      <xsd:documentation>Arttributes defining the time or angle cycle for a periodically driven trigger.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CSE-CODE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the base (time or angle units) for the cycle values according to these codes:

1              1 µsec     Time
2	10 µsec	Time
3	1 msec	Time
4	10 msec	Time
5	100 msec	Time
6	1 sec	Time
7	10 sec	Time
8	1 min	Time
9	1 h	Time
10	1 d	Time
100	Angular degrees	Angle	
101	Revolutions 360 degrees	Angle	
102	Cycle 720 degrees	Angle	e.g. in case of IC engines
103	Cylinder segment	Combustion	e.g. in case of IC engines
998	When frame available	Time	Source defined in the ASAP 2 keyword, FRAME
999	Always if there is new value		Calculation of a new upper range limit after receiving a new partial value, e.g. when calculating a complex trigger condition
1000	Non deterministic		Without fixed scaling

If, for example, the value in swCseCodeFactor is 360 and the value in swCseCode is 100, this is equivalent to the value 1 in 
swCseCodeFactor and the value 101 in swCseCode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CSE-CODE-FACTOR" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The actual value for this period is cseCodeFactor times the base given by cseCode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TriggerDeclaration::TriggerPeriod -->
  <xsd:complexType name="TRIGGER-PERIOD" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Arttributes defining the time or angle cycle for a periodically driven trigger.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TRIGGER-PERIOD"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ApplicationAttributes::TriggerPortAnnotation -->
  <xsd:group name="TRIGGER-PORT-ANNOTATION">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port used for calibration regarding a certain Trigger.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TRIGGER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:TRIGGER--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ApplicationAttributes::TriggerPortAnnotation -->
  <xsd:complexType name="TRIGGER-PORT-ANNOTATION" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Annotation to a port used for calibration regarding a certain Trigger.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:GENERAL-ANNOTATION"/>
      <xsd:group ref="AR:TRIGGER-PORT-ANNOTATION"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::Tt -->
  <xsd:group name="TT">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tt&gt; to format technical terms within the paragraph element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TERM" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the term itself.</xsd:documentation>
          <xsd:appinfo source="tags">xml.roleElement="false";xml.roleWrapperElement="false";xml.typeElement="false";xml.typeWrapperElement="false"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class InlineTextElements::Tt -->
  <xsd:attributeGroup name="TT">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tt&gt; to format technical terms within the paragraph element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="TYPE" type="xsd:NMTOKEN">
      <xsd:annotation>
        <xsd:documentation>This attribute specifies the type of the technical term. Values are such as "VARIABLE" "CALPRM". It is no longer an enum in order to support process specific extensions.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="TT_TYPE__TT_TYPE__TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class InlineTextElements::Tt -->
  <xsd:complexType name="TT">
    <xsd:annotation>
      <xsd:documentation>Use &lt;tt&gt; to format technical terms within the paragraph element.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__TT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attributeGroup ref="AR:AR-OBJECT"/>
        <xsd:attributeGroup ref="AR:TT"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- element group for class TtcanCommunication::TtcanAbsolutelyScheduledTiming -->
  <xsd:group name="TTCAN-ABSOLUTELY-SCHEDULED-TIMING">
    <xsd:annotation>
      <xsd:documentation>Each frame in TTCAN is identified by its slot id and communication cycle. A description is provided by the usage of AbsolutelyScheduledTiming. 

A frame can be sent multiple times within one communication cycle. For describing this case multiple AbsolutelyScheduledTimings have to be used. The main use case would be that a frame is sent twice within one communication cycle.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMMUNICATION-CYCLE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="CYCLE-COUNTER" type="AR:CYCLE-COUNTER"/>
            <xsd:element name="CYCLE-REPETITION" type="AR:CYCLE-REPETITION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TIME-MARK" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Where FlexRay counts the slots in the static segment, TTCAN requires explicit Tx and Rx time marks.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TRIGGER" type="AR:TTCAN-TRIGGER-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Trigger type for this time window.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TtcanCommunication::TtcanAbsolutelyScheduledTiming -->
  <xsd:complexType name="TTCAN-ABSOLUTELY-SCHEDULED-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Each frame in TTCAN is identified by its slot id and communication cycle. A description is provided by the usage of AbsolutelyScheduledTiming. 

A frame can be sent multiple times within one communication cycle. For describing this case multiple AbsolutelyScheduledTimings have to be used. The main use case would be that a frame is sent twice within one communication cycle.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:TTCAN-ABSOLUTELY-SCHEDULED-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class TtcanTopology::TtcanCluster -->
  <xsd:group name="TTCAN-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>TTCAN bus specific cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BASIC-CYCLE-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Length of a basic-cycle. Unit: NTUs</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NTU" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Unit measuring all times and providing a constant of the whole network. For level 1, this is always the CAN bit time. Unit: µs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OPERATION-MODE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Possible operation modes

True: Time-Triggered
False: Event-Synchronised-Time-Triggered</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TtcanTopology::TtcanCluster -->
  <xsd:complexType name="TTCAN-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TTCAN bus specific cluster attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:COMMUNICATION-CLUSTER"/>
      <xsd:group ref="AR:TTCAN-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="TTCAN-CLUSTER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TTCAN-CLUSTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class TtcanTopology::TtcanCommunicationController -->
  <xsd:group name="TTCAN-COMMUNICATION-CONTROLLER">
    <xsd:annotation>
      <xsd:documentation>TTCAN bus specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="APPL-WATCHDOG-LIMIT" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The Appl_Watchdog_Limit shall be an 8-bit value specifying the period for the application watchdog in Appl_Watchdog_Limit times 256 NTUs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXPECTED-TX-TRIGGER" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The Expected_Tx_Trigger shall be an eight (8) bit value which limits the number of messages the FSE may try to transmit in one matrix cycle.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="EXTERNAL-CLOCK-SYNCHRONISATION" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>One bit shall be used to configure whether or not external clock synchronisation will be allowed during runtime (only Level 2).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INITIAL-REF-OFFSET" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The Initial_Ref_Offset shall be an eight (8) bit value for the initialisation of Ref_Trigger_Offset.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MASTER" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>One bit shall be used to distinguish between (potential) time masters and time slaves. This can be derived from the frame-triggering's triggers.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-MASTER-PRIORITY" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The time master priority shall contain a three bit value for the priority of the current time master (the last three bits of the identifier of the reference message). This can be derived from the frame-triggering's triggers.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TIME-TRIGGERED-CAN-LEVEL" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>One bit shall be used to distinguish between Level 1 and Level 2.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TX-ENABLE-WINDOW-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>The length of the Tx_Enable window shall be a four (4) bit value specifying the length of the time period (1-16 nominal CAN bit times) in which a transmission may be started.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class TtcanTopology::TtcanCommunicationController -->
  <xsd:complexType name="TTCAN-COMMUNICATION-CONTROLLER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>TTCAN bus specific communication port attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:CAN-COMMUNICATION-CONTROLLER"/>
      <xsd:group ref="AR:TTCAN-COMMUNICATION-CONTROLLER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::UdpNmCluster -->
  <xsd:group name="UDP-NM-CLUSTER">
    <xsd:annotation>
      <xsd:documentation>Udp specific NmCluster attributes</xsd:documentation>
      <xsd:appinfo source="tags">map.param=""</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-BUSLOAD-REDUCTION-ACTIVE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>It determines if bus load reduction for the respective UdpNm channel is active or not.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-CBV-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the position of the control bit vector within the NM PDU (Byte positon).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-CHANNEL-ACTIVE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This switch determines if the respective UdpNm channel is active or not. Indicates whether a particular UdpNm channel shall be initialized (TRUE) or not (FALSE).
If this parameter is set to FALSE the respective NM instance shall not be used during runtime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-MSG-CYCLE-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Period of a UdpNm message in seconds. It determines the periodic rate in the periodic transmission mode with bus load reduction and is the basis for transmit scheduling in the periodic transmission mode without bus load reduction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NETWORK-TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Network Timeout for UdpNm PDUs in seconds.
It denotes the time how long the CanNm shall stay in the Network Mode before transition into Prepare Bus-Sleep Mode shall take place.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-NID-POSITION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the byte position of the source node identifier within the NM PDU.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-USER-DATA-LENGTH" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Defines the length of the user data contained in the NM Pdu.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-WAIT-BUS-SLEEP-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Timeout for bus calm down phase in seconds. It denotes the time how long the CanNm shall stay in the Prepare Bus-Sleep Mode before transition into Bus-Sleep Mode shall take place.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::UdpNmCluster -->
  <xsd:complexType name="UDP-NM-CLUSTER" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Udp specific NmCluster attributes</xsd:documentation>
      <xsd:appinfo source="tags">map.param=""</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-CLUSTER"/>
      <xsd:group ref="AR:UDP-NM-CLUSTER"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="UDP-NM-CLUSTER--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UDP-NM-CLUSTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class NetworkManagement::UdpNmClusterCoupling -->
  <xsd:group name="UDP-NM-CLUSTER-COUPLING">
    <xsd:annotation>
      <xsd:documentation>Udp attributes that are valid for each of the referenced (coupled) UdpNm clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COUPLED-CLUSTER-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="COUPLED-CLUSTER-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:UDP-NM-CLUSTER--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NM-BUS-LOAD-REDUCTION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables busload reduction support</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-IMMEDIATE-RESTART-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enables the asynchronous transmission of a CanNm PDU upon bus-communication request in Prepare-Bus-Sleep mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::UdpNmClusterCoupling -->
  <xsd:complexType name="UDP-NM-CLUSTER-COUPLING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Udp attributes that are valid for each of the referenced (coupled) UdpNm clusters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:UDP-NM-CLUSTER-COUPLING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::UdpNmEcu -->
  <xsd:group name="UDP-NM-ECU">
    <xsd:annotation>
      <xsd:documentation>Udp NM specific ECU attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-REPEAT-MSG-INDICATION-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enable/disable the notification that a RepeatMessageRequest bit has been received.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-SYNCHRONIZATION-POINT-ENABLED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Enable/disable the NM Coordination algorithm to being able to initiate the
synchronization algorithm.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::UdpNmEcu -->
  <xsd:complexType name="UDP-NM-ECU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Udp NM specific ECU attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:UDP-NM-ECU"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class NetworkManagement::UdpNmNode -->
  <xsd:group name="UDP-NM-NODE">
    <xsd:annotation>
      <xsd:documentation>Udp specific NM Node attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NM-MSG-CYCLE-OFFSET" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Node specific time offset in the periodic transmission node. It determines the start delay of the transmission. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="NM-MSG-REDUCED-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Node specific bus cycle time in the periodic transmission mode with bus load reduction. Specified in seconds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class NetworkManagement::UdpNmNode -->
  <xsd:complexType name="UDP-NM-NODE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Udp specific NM Node attributes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:NM-NODE"/>
      <xsd:group ref="AR:UDP-NM-NODE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class LinCommunication::UnassignFrameId -->
  <xsd:group name="UNASSIGN-FRAME-ID">
    <xsd:annotation>
      <xsd:documentation>Schedule entry for an Unassign Frame Id master request where the protected identifier is assigned the value 0x40. This will disable reception/transmission of a previously dynamically assigned frame identifier.</xsd:documentation>
      <xsd:appinfo source="tags">map.param="Fibex::Fibex4Lin::LinCommunication::"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="UNASSIGNED-FRAME-TRIGGERING-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:LIN-FRAME-TRIGGERING--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class LinCommunication::UnassignFrameId -->
  <xsd:complexType name="UNASSIGN-FRAME-ID" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Schedule entry for an Unassign Frame Id master request where the protected identifier is assigned the value 0x40. This will disable reception/transmission of a previously dynamically assigned frame identifier.</xsd:documentation>
      <xsd:appinfo source="tags">map.param="Fibex::Fibex4Lin::LinCommunication::"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SCHEDULE-TABLE-ENTRY"/>
      <xsd:group ref="AR:LIN-CONFIGURATION-ENTRY"/>
      <xsd:group ref="AR:UNASSIGN-FRAME-ID"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Units::Unit -->
  <xsd:group name="UNIT">
    <xsd:annotation>
      <xsd:documentation>This is a physical measurement unit. All units that might be defined should stem from SI units. In order to convert one unit into another factor and offset are defined. For the calculation from SI-unit to the defined unit the factor (factorSiToUnit ) and the offset (offsetSiToUnit ) are applied:

 unit = siUnit * factorSiToUnit + offsetSiToUnit 

For the calculation from a unit to SI-unit the reciprocal of the factor (factorSiToUnit ) and the negation of the offset (offsetSiToUnit ) are applied:

siUnit = (unit - offsetSiToUnit) / factorSiToUnit</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-UNIT";asam.useCase="MDX";msr.id="type__UNIT_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DISPLAY-NAME" type="AR:SINGLE-LANGUAGE-UNIT-NAMES" minOccurs="0"/>
      <xsd:element name="FACTOR-SI-TO-UNIT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>this is the factor for the convesion from and to siUnits.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="UNIT_TYPE__FACTOR-SI-TO-UNIT";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="OFFSET-SI-TO-UNIT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>this is the offset for the convesion from and to siUnits.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="UNIT_TYPE__OFFSET-SI-TO-UNIT";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PHYSICAL-DIMENSION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PHYSICAL-DIMENSION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Units::Unit -->
  <xsd:complexType name="UNIT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This is a physical measurement unit. All units that might be defined should stem from SI units. In order to convert one unit into another factor and offset are defined. For the calculation from SI-unit to the defined unit the factor (factorSiToUnit ) and the offset (offsetSiToUnit ) are applied:

 unit = siUnit * factorSiToUnit + offsetSiToUnit 

For the calculation from a unit to SI-unit the reciprocal of the factor (factorSiToUnit ) and the negation of the offset (offsetSiToUnit ) are applied:

siUnit = (unit - offsetSiToUnit) / factorSiToUnit</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="ASAM-UNIT";asam.useCase="MDX";msr.id="type__UNIT_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:UNIT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="UNIT--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UNIT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class Units::UnitGroup -->
  <xsd:group name="UNIT-GROUP">
    <xsd:sequence>
      <xsd:element name="UNIT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="UNIT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:UNIT--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Units::UnitGroup -->
  <xsd:complexType name="UNIT-GROUP" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:UNIT-GROUP"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Units::UnitSpec -->
  <xsd:group name="UNIT-SPEC">
    <xsd:sequence>
      <xsd:element name="UNIT-GROUPS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="UNIT-GROUP" type="AR:UNIT-GROUP"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UNITS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="UNIT" type="AR:UNIT"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="PHYSICAL-DIMENSIONS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="PHYSICAL-DIMENSION" type="AR:PHYSICAL-DIMENSION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Units::UnitSpec -->
  <xsd:complexType name="UNIT-SPEC" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:UNIT-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::UnqueuedReceiverComSpec -->
  <xsd:group name="UNQUEUED-RECEIVER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to unqueued receiving.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ALIVE-TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Specify the amount of time (in seconds) after which the software component (via the RTE)  needs to be notified if the corresponding data item have not been received according to the specified timing description.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="HANDLE-INVALID" type="AR:HANDLE-INVALID-TYPE" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute defines the action performed upon a reception timeout violation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="HANDLE-NEVER-RECEIVED" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This attribute specifies whether for the corresponding VariableDataPrototype the "never received" flag is available. If yes, the RTE is supposed to assume that initially the VariableDataPrototype has not been received before.
After the first reception of the corresponding VariableDataPrototype the flag is cleared.
If the value of this attribute is set to TRUE the flag is required. If set to FALSE, the RTE shall not support the "never received" functionality for the corresponding VariableDataPrototype.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="HANDLE-TIMEOUT-TYPE" type="AR:HANDLE-TIMEOUT-TYPE" minOccurs="0"/>
      <xsd:element name="INIT-VALUE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="RESYNC-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Time allowed for resynchronization of data values after current data is lost, e.g. after an ECU reset.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::UnqueuedReceiverComSpec -->
  <xsd:complexType name="UNQUEUED-RECEIVER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to unqueued receiving.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:RECEIVER-COM-SPEC"/>
      <xsd:group ref="AR:UNQUEUED-RECEIVER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Communication::UnqueuedSenderComSpec -->
  <xsd:group name="UNQUEUED-SENDER-COM-SPEC">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to distribution of data (P-Port, sender-receiver interface and data element carries "data" opposed to carrying an "event").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CAN-INVALIDATE" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Flag whether the component can actively invalidate data.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="INIT-VALUE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Communication::UnqueuedSenderComSpec -->
  <xsd:complexType name="UNQUEUED-SENDER-COM-SPEC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Communication attributes specific to distribution of data (P-Port, sender-receiver interface and data element carries "data" opposed to carrying an "event").</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:SENDER-COM-SPEC"/>
      <xsd:group ref="AR:UNQUEUED-SENDER-COM-SPEC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class BlockElements::Url -->
  <xsd:group name="URL">
    <xsd:annotation>
      <xsd:documentation>This element specifies the Uniform Resource Locator (URL) of the context contained in the &lt;url&gt; element.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="URL";msr.id="type__URL_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VALUE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This is the url itself</xsd:documentation>
          <xsd:appinfo source="tags">xml.roleElement="false";xml.roleWrapperElement="false";xml.typeElement="false";xml.typeWrapperElement="false"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class BlockElements::Url -->
  <xsd:attributeGroup name="URL">
    <xsd:annotation>
      <xsd:documentation>This element specifies the Uniform Resource Locator (URL) of the context contained in the &lt;url&gt; element.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="URL";msr.id="type__URL_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="MIME-TYPE" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>this denotes the mime type of the resource located by the url.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="URL_TYPE__URL_TYPE__MIME-TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class BlockElements::Url -->
  <xsd:complexType name="URL">
    <xsd:annotation>
      <xsd:documentation>This element specifies the Uniform Resource Locator (URL) of the context contained in the &lt;url&gt; element.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="URL";msr.id="type__URL_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attributeGroup ref="AR:AR-OBJECT"/>
        <xsd:attributeGroup ref="AR:URL"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- element group for class ValueModel::V -->
  <xsd:group name="V">
    <xsd:annotation>
      <xsd:documentation>Use &lt;v&gt; to enter a numerical value.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__V_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ValueModel::V -->
  <xsd:complexType name="V" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>Use &lt;v&gt; to enter a numerical value.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__V_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ValueModel::ValueByFormula -->
  <xsd:group name="VALUE-BY-FORMULA">
    <xsd:annotation>
      <xsd:documentation>This class represents a value which is computed based on systemconstants according to the specified expression. The expected result is a numerical value.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__VALUE-BY-FORMULA_TYPE";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ValueModel::ValueByFormula -->
  <xsd:complexType name="VALUE-BY-FORMULA" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This class represents a value which is computed based on systemconstants according to the specified expression. The expected result is a numerical value.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__VALUE-BY-FORMULA_TYPE";msr.isGroupOnly="true";msr.isMaster="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-SYSTEMCONST-DEPENDANT-FORMULA"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class DataDefProperties::ValueList -->
  <xsd:group name="VALUE-LIST">
    <xsd:annotation>
      <xsd:documentation>The existence of SwArraysize turns the containing element into a multidimensional object. It is then possible to create arrays of variables, parameters etc. SwArraysize should not be used to imitate stereotypes such as curves or maps since these structures are modeled as separate elements, refer to SwCalprmAxisSet for an SwCalprm. Apart from that any array can be created.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-ARRAYSIZE_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="VF" type="AR:VF" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="V" type="AR:NUMERICAL-VALUE" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;v&gt; to enter a numerical value.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="30";msr.id="SW-ARRAYSIZE_TYPE__V"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class DataDefProperties::ValueList -->
  <xsd:complexType name="VALUE-LIST" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The existence of SwArraysize turns the containing element into a multidimensional object. It is then possible to create arrays of variables, parameters etc. SwArraysize should not be used to imitate stereotypes such as curves or maps since these structures are modeled as separate elements, refer to SwCalprmAxisSet for an SwCalprm. Apart from that any array can be created.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__SW-ARRAYSIZE_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:VALUE-LIST"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Constants::ValueSpecification -->
  <xsd:group name="VALUE-SPECIFICATION">
    <xsd:annotation>
      <xsd:documentation>Base class for expressions leading to a value which can be used to initialize a data object.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- element group for class DataElements::VariableAccess -->
  <xsd:group name="VARIABLE-ACCESS">
    <xsd:annotation>
      <xsd:documentation>The presence of a VariablerAccess implies that a RunnableEntity needs access to a VariableElementPrototype. 

The kind of access is specified by the role in which the class is used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ACCESSED-VARIABLE" type="AR:AR-VARIABLE-REF" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataElements::VariableAccess -->
  <xsd:complexType name="VARIABLE-ACCESS" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>The presence of a VariablerAccess implies that a RunnableEntity needs access to a VariableElementPrototype. 

The kind of access is specified by the role in which the class is used.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:VARIABLE-ACCESS"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="VARIABLE-ACCESS--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="VARIABLE-ACCESS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class PortInterface::VariableAndParameterDataPrototypeMapping -->
  <xsd:group name="VARIABLE-AND-PARAMETER-DATA-PROTOTYPE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named VariableDataPrototypes or ParameterDataPrototypes in context of two different SenderReceiverInterface, NvDataInterface or ParameterInterface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="DATA-PROTOTYPE-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="2">
            <xsd:element name="DATA-PROTOTYPE-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:AUTOSAR-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::VariableAndParameterDataPrototypeMapping -->
  <xsd:complexType name="VARIABLE-AND-PARAMETER-DATA-PROTOTYPE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of two particular unequally named VariableDataPrototypes or ParameterDataPrototypes in context of two different SenderReceiverInterface, NvDataInterface or ParameterInterface.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:VARIABLE-AND-PARAMETER-DATA-PROTOTYPE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class PortInterface::VariableAndParameterInterfaceMapping -->
  <xsd:group name="VARIABLE-AND-PARAMETER-INTERFACE-MAPPING">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named VariableDataPrototypes or ParameterDataPrototypes in context of two different SenderReceiverInterfaces, NvDataInterfaces or ParameterInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAPPINGS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="VARIABLE-AND-PARAMETER-DATA-PROTOTYPE-MAPPING" type="AR:VARIABLE-AND-PARAMETER-DATA-PROTOTYPE-MAPPING"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class PortInterface::VariableAndParameterInterfaceMapping -->
  <xsd:complexType name="VARIABLE-AND-PARAMETER-INTERFACE-MAPPING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Defines the mapping of unequal named VariableDataPrototypes or ParameterDataPrototypes in context of two different SenderReceiverInterfaces, NvDataInterfaces or ParameterInterfaces.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:VARIABLE-AND-PARAMETER-INTERFACE-MAPPING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class DataPrototoypes::VariableDataPrototype -->
  <xsd:group name="VARIABLE-DATA-PROTOTYPE">
    <xsd:annotation>
      <xsd:documentation>A VariableDataPrototype is used to contain values in an ECU application. This  means that most likely a VariableDataPrototype allocates "static" memory on the  ECU. In some cases optimization strategies might lead to a situation where the  memory allocation can be avoided.

In particular, the vakue of a VariableDataPrototype is likely to change as the ECU on which it is used executes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="INIT-VALUE" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0">
            <xsd:element name="ARRAY-VALUE-SPECIFICATION" type="AR:ARRAY-VALUE-SPECIFICATION"/>
            <xsd:element name="CONSTANT-REFERENCE" type="AR:CONSTANT-REFERENCE"/>
            <xsd:element name="FORMULA-VALUE-SPECIFICATION" type="AR:FORMULA-VALUE-SPECIFICATION"/>
            <xsd:element name="PRIMITIVE-VALUE-SPECIFICATION" type="AR:PRIMITIVE-VALUE-SPECIFICATION"/>
            <xsd:element name="RECORD-VALUE-SPECIFICATION" type="AR:RECORD-VALUE-SPECIFICATION"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class DataPrototoypes::VariableDataPrototype -->
  <xsd:complexType name="VARIABLE-DATA-PROTOTYPE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A VariableDataPrototype is used to contain values in an ECU application. This  means that most likely a VariableDataPrototype allocates "static" memory on the  ECU. In some cases optimization strategies might lead to a situation where the  memory allocation can be avoided.

In particular, the vakue of a VariableDataPrototype is likely to change as the ECU on which it is used executes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:ATP-PROTOTYPE"/>
      <xsd:group ref="AR:DATA-PROTOTYPE"/>
      <xsd:group ref="AR:AUTOSAR-DATA-PROTOTYPE"/>
      <xsd:group ref="AR:VARIABLE-DATA-PROTOTYPE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <xsd:simpleType name="VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="VARIABLE-DATA-PROTOTYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- element group for class InstanceRefs::VariableDataPrototypeInAtomicSWCTypeInstanceRef -->
  <xsd:group name="VARIABLE-DATA-PROTOTYPE-IN-ATOMIC-SWC-TYPE-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-DATA-ELEMENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::VariableDataPrototypeInAtomicSWCTypeInstanceRef -->
  <xsd:complexType name="VARIABLE-DATA-PROTOTYPE-IN-ATOMIC-SWC-TYPE-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:VARIABLE-DATA-PROTOTYPE-IN-ATOMIC-SWC-TYPE-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InstanceRefs::VariableDataPrototypeInSystemInstanceRef -->
  <xsd:group name="VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF">
    <xsd:sequence>
      <!-- Association <<atpDerived>>base skipped -->
      <xsd:element name="CONTEXT-COMPONENT-REFS" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="CONTEXT-COMPONENT-REF">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="AR:REF">
                    <xsd:attribute name="DEST" type="AR:COMPONENT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-COMPOSITION-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:SOFTWARE-COMPOSITION--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CONTEXT-PORT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:PORT-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="TARGET-DATA-PROTOTYPE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:VARIABLE-DATA-PROTOTYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InstanceRefs::VariableDataPrototypeInSystemInstanceRef -->
  <xsd:complexType name="VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:ATP-INSTANCE-REF"/>
      <xsd:group ref="AR:VARIABLE-DATA-PROTOTYPE-IN-SYSTEM-INSTANCE-REF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class VariantHandling::VariationPoint -->
  <xsd:group name="VARIATION-POINT">
    <xsd:sequence>
      <xsd:element name="BINDING-TIME" type="AR:BINDING-TIME-ENUM" minOccurs="0"/>
      <xsd:element name="POST-BUILD-VARIANT-CRITERION-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="POST-BUILD-VARIANT-CRITERION-VALUE" type="AR:POST-BUILD-VARIANT-CRITERION-VALUE"/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="SW-SYSCOND" type="AR:CONDITION-BY-FORMULA" minOccurs="0"/>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class VariantHandling::VariationPoint -->
  <xsd:complexType name="VARIATION-POINT" abstract="false" mixed="false">
    <xsd:sequence>
      <xsd:group ref="AR:VARIATION-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class ValueModel::Vf -->
  <xsd:group name="VF">
    <xsd:annotation>
      <xsd:documentation>Value calculated via a system constant. This element is included in every case, where parameters should be generated from numerical values during compile time (not runtime!). Thus for example, the influence of the cylinder number on conversion formulae, can be introduced in a repeatable manner.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__VF_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class ValueModel::Vf -->
  <xsd:complexType name="VF" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>Value calculated via a system constant. This element is included in every case, where parameters should be generated from numerical values during compile time (not runtime!). Thus for example, the influence of the cylinder number on conversion formulae, can be introduced in a repeatable manner.</xsd:documentation>
      <xsd:appinfo source="tags">asam.useCase="MDX";msr.id="type__VF_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:SW-SYSTEMCONST-DEPENDANT-FORMULA"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class Timing::VfbTiming -->
  <xsd:group name="VFB-TIMING">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints at VFB level.

TimingDescriptions aggregated by VfbTiming are restricted to event chains referring to events which are derived from the class TDEventVfb.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="COMPONENT-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:COMPONENT-TYPE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Timing::VfbTiming -->
  <xsd:complexType name="VFB-TIMING" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A model element used to define timing descriptions and constraints at VFB level.

TimingDescriptions aggregated by VfbTiming are restricted to event chains referring to events which are derived from the class TDEventVfb.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:TIMING"/>
      <xsd:group ref="AR:VFB-TIMING"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ValueModel::Vt -->
  <xsd:group name="VT">
    <xsd:annotation>
      <xsd:documentation>&lt;vf&gt; represents one particular textual value of the calibration item.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="VT";asam.useCase="MDX";msr.id="type__VT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- attribute group for class ValueModel::Vt -->
  <xsd:attributeGroup name="VT">
    <xsd:annotation>
      <xsd:documentation>&lt;vf&gt; represents one particular textual value of the calibration item.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="VT";asam.useCase="MDX";msr.id="type__VT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="XMLSPACE" type="AR:XMLSPACE-ENUM"/>
  </xsd:attributeGroup>
  <!-- complex type for class ValueModel::Vt -->
  <xsd:complexType name="VT" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>&lt;vf&gt; represents one particular textual value of the calibration item.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="VT";asam.useCase="MDX";msr.id="type__VT_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:VT"/>
  </xsd:complexType>
  <!-- element group for class RTEEvents::WaitPoint -->
  <xsd:group name="WAIT-POINT">
    <xsd:annotation>
      <xsd:documentation>This defines a wait-point for which the runnable can wait.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="TIMEOUT" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Time in seconds before the waitpoint times out and the blocking wait call returns with an error indicating the timeout.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TRIGGER-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:RTE-EVENT--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class RTEEvents::WaitPoint -->
  <xsd:complexType name="WAIT-POINT" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This defines a wait-point for which the runnable can wait.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:WAIT-POINT"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class Peripherals::WatchDog -->
  <xsd:group name="WATCH-DOG">
    <xsd:annotation>
      <xsd:documentation>A form of interval timer, which is used to detect a possible malfunction of the processing unit. The timer is started as a countdown and has to be triggered within a specific time. Either the trigger only has to occur before the count-down runs out, or the trigger has to occur within a specific window before the timeout, therefore a trigger too early will also set off the watchdog. If the trigger is not correctly performed the watchdog will set off and will initiate an interrupt or perform a reset of the whole processing unit or ECU.
The watchdog can be implemented in software or hardware and if the implementation is in hardware it can be integrated into the processing unit or connected externally.
Depending on the complexity of the watchdog the interfacing is either a serial communication or some discrete I/O lines. Also the trigger itself can be just some digital peak or can be some calculated request-response mechanism. The actual handling of the watchdog has to be covered by some specific driver software.
The watchdog will use at least an interrupt of the processing unit and also some peripheral connections for the control and set-up.
To enable different operating modes of the processing unit and the ECU it is important to specify if the watchdog can be disabled (e.g. during flash programming).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="CLOCK-SOURCE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:OSCILLATOR--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="MODE" type="AR:WATCH-DOG-MODE-ENUM" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>A Watchdog can be running in different modes. In normal mode must the watchdog be kicked within a certain maximum time. In the windowed mode there is also a lower limit of the time when the watchdog has to be kicked. In debug mode is the watchdog disabled. Sometimes it's also required that the watchdog can be disabled and enabled during software download. To ensure that this mode is not entered in normal operation there is often some kind of security procedure to enter the mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="THRESHOLD-VALUES" minOccurs="0">
        <xsd:complexType>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="THRESHOLD-VALUE" type="xsd:integer" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation>The threshold is the definition of a counter value. When the counter has reached this value some action is performed, e.g. an interrupt can be generated.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class Peripherals::WatchDog -->
  <xsd:complexType name="WATCH-DOG" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>A form of interval timer, which is used to detect a possible malfunction of the processing unit. The timer is started as a countdown and has to be triggered within a specific time. Either the trigger only has to occur before the count-down runs out, or the trigger has to occur within a specific window before the timeout, therefore a trigger too early will also set off the watchdog. If the trigger is not correctly performed the watchdog will set off and will initiate an interrupt or perform a reset of the whole processing unit or ECU.
The watchdog can be implemented in software or hardware and if the implementation is in hardware it can be integrated into the processing unit or connected externally.
Depending on the complexity of the watchdog the interfacing is either a serial communication or some discrete I/O lines. Also the trigger itself can be just some digital peak or can be some calculated request-response mechanism. The actual handling of the watchdog has to be covered by some specific driver software.
The watchdog will use at least an interrupt of the processing unit and also some peripheral connections for the control and set-up.
To enable different operating modes of the processing unit and the ECU it is important to specify if the watchdog can be disabled (e.g. during flash programming).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HW-ELEMENT"/>
      <xsd:group ref="AR:PERIPHERAL"/>
      <xsd:group ref="AR:WATCH-DOG"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class ExecutionTime::WorstCaseExecutionTime -->
  <xsd:group name="WORST-CASE-EXECUTION-TIME">
    <xsd:annotation>
      <xsd:documentation>WorstCaseExecutionTime provides an analytic method for specifying the minimum and maximum execution time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MAXIMAL-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Maximum WorstCaseExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="MINIMAL-EXECUTION-TIME" type="xsd:double" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Minimum WorstCaseExecutionTime.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class ExecutionTime::WorstCaseExecutionTime -->
  <xsd:complexType name="WORST-CASE-EXECUTION-TIME" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>WorstCaseExecutionTime provides an analytic method for specifying the minimum and maximum execution time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:EXECUTION-TIME"/>
      <xsd:group ref="AR:WORST-CASE-EXECUTION-TIME"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class HeapUsage::WorstCaseHeapUsage -->
  <xsd:group name="WORST-CASE-HEAP-USAGE">
    <xsd:annotation>
      <xsd:documentation>Provides a formal worst case heap usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Worst case heap consumption.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class HeapUsage::WorstCaseHeapUsage -->
  <xsd:complexType name="WORST-CASE-HEAP-USAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Provides a formal worst case heap usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:HEAP-USAGE"/>
      <xsd:group ref="AR:WORST-CASE-HEAP-USAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class StackUsage::WorstCaseStackUsage -->
  <xsd:group name="WORST-CASE-STACK-USAGE">
    <xsd:annotation>
      <xsd:documentation>Provides a formal worst case stack usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="MEMORY-CONSUMPTION" type="xsd:integer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Worst case stack consumption.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class StackUsage::WorstCaseStackUsage -->
  <xsd:complexType name="WORST-CASE-STACK-USAGE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Provides a formal worst case stack usage.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
      <xsd:group ref="AR:STACK-USAGE"/>
      <xsd:group ref="AR:WORST-CASE-STACK-USAGE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class CoreCommunication::XcpPdu -->
  <xsd:group name="XCP-PDU">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR XCP Pdu</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class CoreCommunication::XcpPdu -->
  <xsd:complexType name="XCP-PDU" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>AUTOSAR XCP Pdu</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:IDENTIFIABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:IDENTIFIABLE"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::Xdoc -->
  <xsd:group name="XDOC">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xdoc&gt; , to reference an external document.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="XDOC";msr.id="type__XDOC_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="NUMBER" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;number&gt; to enter the version number of an external document that is referenced. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XDOC_TYPE__NUMBER";msr.tbdString="true";xml.sequenceOffset="30"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="STATE" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;state1&gt; to enter the version and state of a standard or an external document. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XDOC_TYPE__STATE-1";msr.tbdString="true";xml.sequenceOffset="40"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="DATE" type="xsd:dateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element specifies the release date of the external document if applicable.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XDOC_TYPE__DATE-1";msr.tbdString="true";xml.sequenceOffset="50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="PUBLISHER" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;publisher&gt; to enter the publisher of an external document that is being referenced. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XDOC_TYPE__PUBLISHER";msr.tbdString="true";xml.sequenceOffset="60"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="URL" type="AR:URL" minOccurs="0"/>
      <xsd:element name="POSITION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Use &lt;position&gt; to enter references to the relevant positions of a standard. Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XDOC_TYPE__POSITION";msr.tbdString="true";xml.sequenceOffset="80"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InlineTextElements::Xdoc -->
  <xsd:complexType name="XDOC" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xdoc&gt; , to reference an external document.</xsd:documentation>
      <xsd:appinfo source="tags">asam.harmonizedObject="XDOC";msr.id="type__XDOC_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:XDOC"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::Xfile -->
  <xsd:group name="XFILE">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xfile&gt; , to reference an external file.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XFILE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="URL" type="AR:URL" minOccurs="0"/>
      <xsd:element name="TOOL" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element describes the tool which was used to generate the corresponding &lt;xfile&gt; . Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XFILE_TYPE__TOOL";msr.tbdString="true";xml.sequenceOffset="50"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="TOOL-VERSION" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>This element describes the tool version which was used to generate the corresponding &lt;xfile&gt; . Kept as a string.</xsd:documentation>
          <xsd:appinfo source="tags">msr.id="XFILE_TYPE__TOOL-VERSION";msr.tbdString="true";xml.sequenceOffset="60"</xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- complex type for class InlineTextElements::Xfile -->
  <xsd:complexType name="XFILE" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xfile&gt; , to reference an external file.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XFILE_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
      <xsd:group ref="AR:XFILE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::Xref -->
  <xsd:group name="XREF">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xref&gt; , to generate cross-references within the document.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XREF_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="REFERRABLE-REF" minOccurs="0">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="AR:REF">
              <xsd:attribute name="DEST" type="AR:REFERRABLE--SUBTYPES-ENUM" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <!-- attribute group for class InlineTextElements::Xref -->
  <xsd:attributeGroup name="XREF">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xref&gt; , to generate cross-references within the document.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XREF_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:attribute name="EXT-ID-CLASS" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>This atttribute denotes the class of the target object. It somehow is similar to the DEST attribute in references.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="XREF_TYPE__XREF_TYPE__EXT-ID-CLASS";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="ID-CLASS" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>This atttribute denotes the class of the target object. It somehow is similar to the DEST attribute in references.
Note that if the target object is not part of the same model, this attribute refers to a nameloc object.</xsd:documentation>
        <xsd:appinfo source="tags">msr.id="XREF_TYPE__XREF_TYPE__ID-CLASS";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-CONTENT" type="AR:SHOW-CONTENT-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates if the content of the xref element shall be rendered. The default is "NO-SHOW-CONTENT".</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="NO-SHOW-CONTENT";msr.id="XREF_TYPE__XREF_TYPE__SHOW-CONTENT";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-RESOURCE-LONG-NAME" type="AR:SHOW-RESOURCE-LONG-NAME-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates if the longName of the referenced ressource shall be rendered. Default is "SHOW-LONG-NAME".</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="SHOW-LONG-NAME";msr.id="XREF_TYPE__XREF_TYPE__SHOW-RESOURCE-LONG-NAME";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-RESOURCE-NUMBER" type="AR:SHOW-RESOURCE-NUMBER-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indiacates if the Number of the referenced ressource shall be shown. Default is "SHOW--NUMBER"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="SHOW-NUMBER";msr.id="XREF_TYPE__XREF_TYPE__SHOW-RESOURCE-NUMBER";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-RESOURCE-PAGE" type="AR:SHOW-RESOURCE-PAGE-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates if the page number of the referenced ressource shall be shown. Default is "SHOW-PAGE"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="SHOW-PAGE";msr.id="XREF_TYPE__XREF_TYPE__SHOW-RESOURCE-PAGE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-RESOURCE-SHORT-NAME" type="AR:SHOW-RESOURCE-SHORT-NAME-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates if the shortJName of the referenced ressource shall be shown. Default is "SHOW-SHORT-NAME"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="SHOW-PAGE";msr.id="XREF_TYPE__XREF_TYPE__SHOW-RESOURCE-SHORT-NAME";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-RESOURCE-TYPE" type="AR:SHOW-RESOURCE-TYPE-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates if the type of the referenced Ressource shall be shown. Default is "SHOW-TYPE"</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="SHOW-TYPE";msr.id="XREF_TYPE__XREF_TYPE__SHOW-RESOURCE-TYPE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="SHOW-SEE" type="AR:SHOW-SEE-ENUM">
      <xsd:annotation>
        <xsd:documentation>Indicates if the word "see " shall be shown before the reference. Default is "NO-SHOW-SEE". Note that this is there for compatibility reasons only.</xsd:documentation>
        <xsd:appinfo source="tags">msr.default="NO-SHOW-SEE";msr.id="XREF_TYPE__XREF_TYPE__SHOW-SEE";xml.attribute="true"</xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
  <!-- complex type for class InlineTextElements::Xref -->
  <xsd:complexType name="XREF" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>Use &lt;xref&gt; , to generate cross-references within the document.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XREF_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:XREF"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
    <xsd:attributeGroup ref="AR:XREF"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::XrefTarget -->
  <xsd:group name="XREF-TARGET">
    <xsd:annotation>
      <xsd:documentation>This element specifies a reference target which can be scattered throughout the text.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XREF-TARGET_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence/>
  </xsd:group>
  <!-- complex type for class InlineTextElements::XrefTarget -->
  <xsd:complexType name="XREF-TARGET" abstract="false" mixed="false">
    <xsd:annotation>
      <xsd:documentation>This element specifies a reference target which can be scattered throughout the text.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__XREF-TARGET_TYPE"</xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="AR:REFERRABLE"/>
    </xsd:sequence>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <!-- element group for class InlineTextElements::indexEntry -->
  <xsd:group name="INDEX-ENTRY">
    <xsd:annotation>
      <xsd:documentation>This class represents an index entry.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__IE_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="SUP" type="AR:SUPSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sup&gt; to display sections of text within a paragraph element, in a smaller font above the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="30";msr.id="IE_TYPE__SUP"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="SUB" type="AR:SUBSCRIPT" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation>Use &lt;sub&gt; to display sections of text within a paragraph element, in a smaller font beneath the base line.</xsd:documentation>
            <xsd:appinfo source="tags">xml.sequenceOffset="40";msr.id="IE_TYPE__SUB"</xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <!-- complex type for class InlineTextElements::indexEntry -->
  <xsd:complexType name="INDEX-ENTRY" abstract="false" mixed="true">
    <xsd:annotation>
      <xsd:documentation>This class represents an index entry.</xsd:documentation>
      <xsd:appinfo source="tags">msr.id="type__IE_TYPE";msr.isGroupOnly="true"</xsd:appinfo>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:group ref="AR:INDEX-ENTRY"/>
    </xsd:choice>
    <xsd:attributeGroup ref="AR:AR-OBJECT"/>
  </xsd:complexType>
  <xsd:simpleType name="ACTUATOR-HW-DEFAULT-POSITIOIN-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="STABLE"/>
      <xsd:enumeration value="INSTABLE"/>
      <xsd:enumeration value="BI-STABLE"/>
      <xsd:enumeration value="MULTI-STABLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ACTUATOR-HW-ELECTRICAL-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RESISTIVE"/>
      <xsd:enumeration value="CAPACITIVE"/>
      <xsd:enumeration value="INDUCTIVE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ACTUATOR-HW-MOVEMENT-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UNIDIRECTIONAL"/>
      <xsd:enumeration value="BIDIRECTIONAL"/>
      <xsd:enumeration value="UNIDIRECTIONAL-WITH-AUTO-RESET"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ADC-BEHAVIOUR-AT-LIMIT-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CLIPPING"/>
      <xsd:enumeration value="DEFAULT"/>
      <xsd:enumeration value="UNDEFINED"/>
      <xsd:enumeration value="OTHER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ADDRESS">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="0x[0-9a-z]*"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ALIGN-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CENTER"/>
      <xsd:enumeration value="CHAR"/>
      <xsd:enumeration value="JUSTIFY"/>
      <xsd:enumeration value="LEFT"/>
      <xsd:enumeration value="RIGHT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ANALOGUE-IO-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CONTINUOUS"/>
      <xsd:enumeration value="SINGLE"/>
      <xsd:enumeration value="SEQUENTIAL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="AREA-ENUM-NOHREF">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NOHREF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="AREA-ENUM-SHAPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CIRCLE"/>
      <xsd:enumeration value="DEFAULT"/>
      <xsd:enumeration value="POLY"/>
      <xsd:enumeration value="RECT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BINDING-TIME-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SYSTEM-DESIGN-TIME"/>
      <xsd:enumeration value="CODE-GENERATION-TIME"/>
      <xsd:enumeration value="PRE-COMPILE-TIME"/>
      <xsd:enumeration value="LINK-TIME"/>
      <xsd:enumeration value="POST-BUILD-LOADABLE"/>
      <xsd:enumeration value="POST-BUILD-SELECTABLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BSW-CALL-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="REGULAR"/>
      <xsd:enumeration value="CALLBACK"/>
      <xsd:enumeration value="INTERRUPT"/>
      <xsd:enumeration value="SCHEDULED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BSW-EXECUTION-CONTEXT">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="INTERRUPT"/>
      <xsd:enumeration value="UNSPECIFIED"/>
      <xsd:enumeration value="TASK"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BSW-INTERRUPT-CATEGORY">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAT-1"/>
      <xsd:enumeration value="CAT-2"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BYTE-ORDER-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MOST-SIGNIFICANT-BYTE-LAST"/>
      <xsd:enumeration value="MOST-SIGNIFICANT-BYTE-FIRST"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CALPRM-AXIS-CATEGORY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="STD-AXIS"/>
      <xsd:enumeration value="FIX-AXIS"/>
      <xsd:enumeration value="CURVE-AXIS"/>
      <xsd:enumeration value="COM-AXIS"/>
      <xsd:enumeration value="RES-AXIS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CAN-ADRESSING-MODE-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="STANDARD"/>
      <xsd:enumeration value="EXTENDED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CAN-TP-ADDRESSING-FORMAT-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="STANDARD"/>
      <xsd:enumeration value="EXTENDED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CCU-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAPTURE"/>
      <xsd:enumeration value="COMPARE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CHAPTER-ENUM-BREAK">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BREAK"/>
      <xsd:enumeration value="NO-BREAK"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CLOCK-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PLL"/>
      <xsd:enumeration value="DIVIDER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="COMMUNICATION-ARCHITECTURE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="MASTER"/>
      <xsd:enumeration value="SLAVE"/>
      <xsd:enumeration value="MULTI-MASTER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="COMMUNICATION-DIRECTION-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="INPUT"/>
      <xsd:enumeration value="OUTPUT"/>
      <xsd:enumeration value="INOUT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="COMMUNICATION-PHYSICAL-MEDIUM-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ELECTRICAL"/>
      <xsd:enumeration value="OPTICAL"/>
      <xsd:enumeration value="WIRELESS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CONFIGURATION-AFFECTION">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PC-AFFECTS-PB"/>
      <xsd:enumeration value="PC-AFFECTS-LT"/>
      <xsd:enumeration value="PC-AFFECTS-LT-AND-PB"/>
      <xsd:enumeration value="NO-AFFECT"/>
      <xsd:enumeration value="LT-AFFECTS-PB"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CONFIGURATION-CLASS">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="POST-BUILD"/>
      <xsd:enumeration value="PRE-COMPILE"/>
      <xsd:enumeration value="PUBLISHED-INFORMATION"/>
      <xsd:enumeration value="LINK"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CONFIGURATION-VARIANT">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="VARIANT-PRE-COMPILE"/>
      <xsd:enumeration value="VARIANT-LINK-TIME"/>
      <xsd:enumeration value="VARIANT-POST-BUILD"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CYCLE-REPETITION-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CYCLE-REPETITION-64"/>
      <xsd:enumeration value="CYCLE-REPETITION-1"/>
      <xsd:enumeration value="CYCLE-REPETITION-2"/>
      <xsd:enumeration value="CYCLE-REPETITION-4"/>
      <xsd:enumeration value="CYCLE-REPETITION-8"/>
      <xsd:enumeration value="CYCLE-REPETITION-16"/>
      <xsd:enumeration value="CYCLE-REPETITION-32"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DATA-FILTER-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ALWAYS"/>
      <xsd:enumeration value="NEVER"/>
      <xsd:enumeration value="MASEKD-NEW-EQUALS-X"/>
      <xsd:enumeration value="NEW-IS-EQUAL"/>
      <xsd:enumeration value="NEW-IS-DIFFERENT"/>
      <xsd:enumeration value="MASEKD-NEW-EQUALS-MASKED-OLD"/>
      <xsd:enumeration value="MASKED-NEW-DIFFERS-MASKED-OLD"/>
      <xsd:enumeration value="MASKED-NEW-DIFFERS-X"/>
      <xsd:enumeration value="NEW-IS-WITHIN"/>
      <xsd:enumeration value="NEW-IS-OUTSIDE"/>
      <xsd:enumeration value="NEW-IS-GREATER"/>
      <xsd:enumeration value="NEW-IS-LESS-OR-EQUAL"/>
      <xsd:enumeration value="NEW-IS-LESS"/>
      <xsd:enumeration value="NEW-IS-GREATER-OR-EQUAL"/>
      <xsd:enumeration value="ONE-EVERY-N"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DEPENDENCY-USAGE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMPILE"/>
      <xsd:enumeration value="LINK"/>
      <xsd:enumeration value="BUILD"/>
      <xsd:enumeration value="EXECUTE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DIAG-PDU-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DIAG-RESPONSE"/>
      <xsd:enumeration value="DIAG-REQUEST"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DIGITAL-IO-EDGE-DETECTION-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RISING"/>
      <xsd:enumeration value="FALLING"/>
      <xsd:enumeration value="RAISING-FALLING"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DIRECTION-KIND">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="IN"/>
      <xsd:enumeration value="OUT"/>
      <xsd:enumeration value="INOUT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DISPLAY-HW-COLOUR-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COLOUR"/>
      <xsd:enumeration value="GREY"/>
      <xsd:enumeration value="MONO"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DISPLAY-HW-TYPE-OF-CHARACTERS-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NUMERICAL"/>
      <xsd:enumeration value="ALPHA-NUMERICAL"/>
      <xsd:enumeration value="SEMI-GRAPHICAL"/>
      <xsd:enumeration value="GRAPHICAL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="E-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BOLD"/>
      <xsd:enumeration value="BOLDITALIC"/>
      <xsd:enumeration value="ITALIC"/>
      <xsd:enumeration value="PLAIN"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="E-ENUM-FONT">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DEFAULT"/>
      <xsd:enumeration value="MONO"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ENDIANESS-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LITTLE-ENDIAN"/>
      <xsd:enumeration value="BIG-ENDIAN"/>
      <xsd:enumeration value="OPAQUE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FILTER-DEBOUNCING-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RAW-DATA"/>
      <xsd:enumeration value="DEBOUNCE-DATA"/>
      <xsd:enumeration value="WAIT-TIME-DATE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FLEXRAY-CHANNEL-NAME">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CHANNEL-A"/>
      <xsd:enumeration value="CHANNEL-B"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FLEXRAY-NM-SCHEDULE-VARIANT">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SCHEDULE-VARIANT-1"/>
      <xsd:enumeration value="SCHEDULE-VARIANT-2"/>
      <xsd:enumeration value="SCHEDULE-VARIANT-3"/>
      <xsd:enumeration value="SCHEDULE-VARIANT-4"/>
      <xsd:enumeration value="SCHEDULE-VARIANT-5"/>
      <xsd:enumeration value="SCHEDULE-VARIANT-6"/>
      <xsd:enumeration value="SCHEDULE-VARIANT-7"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FLOAT-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FLOAT"/>
      <xsd:enumeration value="NO-FLOAT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FRAME-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ALL"/>
      <xsd:enumeration value="BOTTOM"/>
      <xsd:enumeration value="NONE"/>
      <xsd:enumeration value="SIDES"/>
      <xsd:enumeration value="TOP"/>
      <xsd:enumeration value="TOPBOT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="GRAPHIC-ENUM-CATEGORY">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BARCODE"/>
      <xsd:enumeration value="CONCEPTUAL"/>
      <xsd:enumeration value="ENGINEERING"/>
      <xsd:enumeration value="FLOWCHART"/>
      <xsd:enumeration value="GRAPH"/>
      <xsd:enumeration value="LOGO"/>
      <xsd:enumeration value="SCHEMATIC"/>
      <xsd:enumeration value="WAVEFORM"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="GRAPHIC-FIT-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="AS-IS"/>
      <xsd:enumeration value="ROTATE-90-CW"/>
      <xsd:enumeration value="ROTATE-90-CCW"/>
      <xsd:enumeration value="ROTATE-180"/>
      <xsd:enumeration value="ROTATE-90-CW-FIT-TO-TEXT"/>
      <xsd:enumeration value="ROTATE-90-CCW-FIT-TO-TEXT"/>
      <xsd:enumeration value="ROTATE-180-LIMIT-TO-TEXT"/>
      <xsd:enumeration value="ROTATE-90-CW-LIMIT-TO-TEXT"/>
      <xsd:enumeration value="ROTATE-90-CCW-LIMIT-TO-TEXT"/>
      <xsd:enumeration value="FIT-TO-TEXT"/>
      <xsd:enumeration value="FIT-TO-PAGE"/>
      <xsd:enumeration value="LIMIT-TO-TEXT"/>
      <xsd:enumeration value="LIMIT-TO-PAGE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HANDLE-INVALID-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="KEEP"/>
      <xsd:enumeration value="REPLACE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HANDLE-TERMINATION-AND-RESTART-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SUPPORT"/>
      <xsd:enumeration value="CAN-BE-TERMINATED"/>
      <xsd:enumeration value="CAN-BE-TERMINATED-AND-RESTARTED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HANDLE-TIMEOUT-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="REPLACE"/>
      <xsd:enumeration value="NONE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HW-ELEMENT-DEFAULT-RESET-BEHAVIOR-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PASSIVE"/>
      <xsd:enumeration value="ON"/>
      <xsd:enumeration value="OFF"/>
      <xsd:enumeration value="OTHER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HW-ELEMENT-POWER-DRIVER-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="HS"/>
      <xsd:enumeration value="LS"/>
      <xsd:enumeration value="HB"/>
      <xsd:enumeration value="FB"/>
      <xsd:enumeration value="OTHER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HW-ELEMENT-RESET-ON-FAULT-BEHAVIOUR-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="AUTO"/>
      <xsd:enumeration value="RE-TRIGGER"/>
      <xsd:enumeration value="FOLD-BACK"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="IDENTIFIER">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[a-zA-Z][a-zA-Z0-9_]{0,127}"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="INTERVAL-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CLOSED"/>
      <xsd:enumeration value="INFINITE"/>
      <xsd:enumeration value="OPEN"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ITEM-LABEL-POS-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NEWLINE"/>
      <xsd:enumeration value="NEWLINE-IF-NECESSARY"/>
      <xsd:enumeration value="NO-NEWLINE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="KEEP-WITH-PREVIOUS-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="KEEP"/>
      <xsd:enumeration value="NO-KEEP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="L-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FOR-ALL"/>
      <xsd:enumeration value="AA"/>
      <xsd:enumeration value="AB"/>
      <xsd:enumeration value="AF"/>
      <xsd:enumeration value="AM"/>
      <xsd:enumeration value="AR"/>
      <xsd:enumeration value="AS"/>
      <xsd:enumeration value="AY"/>
      <xsd:enumeration value="AZ"/>
      <xsd:enumeration value="BA"/>
      <xsd:enumeration value="BE"/>
      <xsd:enumeration value="BG"/>
      <xsd:enumeration value="BH"/>
      <xsd:enumeration value="BI"/>
      <xsd:enumeration value="BN"/>
      <xsd:enumeration value="BO"/>
      <xsd:enumeration value="BR"/>
      <xsd:enumeration value="CA"/>
      <xsd:enumeration value="CO"/>
      <xsd:enumeration value="CS"/>
      <xsd:enumeration value="CY"/>
      <xsd:enumeration value="DA"/>
      <xsd:enumeration value="DE"/>
      <xsd:enumeration value="DZ"/>
      <xsd:enumeration value="EL"/>
      <xsd:enumeration value="EN"/>
      <xsd:enumeration value="EO"/>
      <xsd:enumeration value="ES"/>
      <xsd:enumeration value="ET"/>
      <xsd:enumeration value="EU"/>
      <xsd:enumeration value="FA"/>
      <xsd:enumeration value="FI"/>
      <xsd:enumeration value="FJ"/>
      <xsd:enumeration value="FO"/>
      <xsd:enumeration value="FR"/>
      <xsd:enumeration value="FY"/>
      <xsd:enumeration value="GA"/>
      <xsd:enumeration value="GD"/>
      <xsd:enumeration value="GL"/>
      <xsd:enumeration value="GN"/>
      <xsd:enumeration value="GU"/>
      <xsd:enumeration value="HA"/>
      <xsd:enumeration value="HI"/>
      <xsd:enumeration value="HR"/>
      <xsd:enumeration value="HU"/>
      <xsd:enumeration value="HY"/>
      <xsd:enumeration value="IA"/>
      <xsd:enumeration value="IE"/>
      <xsd:enumeration value="IK"/>
      <xsd:enumeration value="IN"/>
      <xsd:enumeration value="IS"/>
      <xsd:enumeration value="IT"/>
      <xsd:enumeration value="IW"/>
      <xsd:enumeration value="JA"/>
      <xsd:enumeration value="JI"/>
      <xsd:enumeration value="JW"/>
      <xsd:enumeration value="KA"/>
      <xsd:enumeration value="KK"/>
      <xsd:enumeration value="KL"/>
      <xsd:enumeration value="KM"/>
      <xsd:enumeration value="KN"/>
      <xsd:enumeration value="KO"/>
      <xsd:enumeration value="KS"/>
      <xsd:enumeration value="KU"/>
      <xsd:enumeration value="KY"/>
      <xsd:enumeration value="LA"/>
      <xsd:enumeration value="LN"/>
      <xsd:enumeration value="LO"/>
      <xsd:enumeration value="LT"/>
      <xsd:enumeration value="LV"/>
      <xsd:enumeration value="MG"/>
      <xsd:enumeration value="MI"/>
      <xsd:enumeration value="MK"/>
      <xsd:enumeration value="ML"/>
      <xsd:enumeration value="MN"/>
      <xsd:enumeration value="MO"/>
      <xsd:enumeration value="MR"/>
      <xsd:enumeration value="MS"/>
      <xsd:enumeration value="MT"/>
      <xsd:enumeration value="MY"/>
      <xsd:enumeration value="NA"/>
      <xsd:enumeration value="NE"/>
      <xsd:enumeration value="NL"/>
      <xsd:enumeration value="NO"/>
      <xsd:enumeration value="OC"/>
      <xsd:enumeration value="OM"/>
      <xsd:enumeration value="OR"/>
      <xsd:enumeration value="PA"/>
      <xsd:enumeration value="PL"/>
      <xsd:enumeration value="PS"/>
      <xsd:enumeration value="PT"/>
      <xsd:enumeration value="QU"/>
      <xsd:enumeration value="RM"/>
      <xsd:enumeration value="RN"/>
      <xsd:enumeration value="RO"/>
      <xsd:enumeration value="RU"/>
      <xsd:enumeration value="RW"/>
      <xsd:enumeration value="SA"/>
      <xsd:enumeration value="SD"/>
      <xsd:enumeration value="SG"/>
      <xsd:enumeration value="SH"/>
      <xsd:enumeration value="SI"/>
      <xsd:enumeration value="SK"/>
      <xsd:enumeration value="SL"/>
      <xsd:enumeration value="SM"/>
      <xsd:enumeration value="SN"/>
      <xsd:enumeration value="SO"/>
      <xsd:enumeration value="SQ"/>
      <xsd:enumeration value="SR"/>
      <xsd:enumeration value="SS"/>
      <xsd:enumeration value="ST"/>
      <xsd:enumeration value="SU"/>
      <xsd:enumeration value="SV"/>
      <xsd:enumeration value="SW"/>
      <xsd:enumeration value="TA"/>
      <xsd:enumeration value="TE"/>
      <xsd:enumeration value="TG"/>
      <xsd:enumeration value="TH"/>
      <xsd:enumeration value="TI"/>
      <xsd:enumeration value="TK"/>
      <xsd:enumeration value="TL"/>
      <xsd:enumeration value="TN"/>
      <xsd:enumeration value="TO"/>
      <xsd:enumeration value="TR"/>
      <xsd:enumeration value="TS"/>
      <xsd:enumeration value="TT"/>
      <xsd:enumeration value="TW"/>
      <xsd:enumeration value="UK"/>
      <xsd:enumeration value="UR"/>
      <xsd:enumeration value="UZ"/>
      <xsd:enumeration value="VI"/>
      <xsd:enumeration value="VO"/>
      <xsd:enumeration value="WO"/>
      <xsd:enumeration value="XH"/>
      <xsd:enumeration value="YO"/>
      <xsd:enumeration value="ZH"/>
      <xsd:enumeration value="ZU"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LATENCY-CONSTRAINT-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FIRST-STIMULUS-FIRST-RESPONSE"/>
      <xsd:enumeration value="FIRST-STIMULUS-LAST-RESPONSE"/>
      <xsd:enumeration value="LAST-STIMULUS-FIRST-RESPONSE"/>
      <xsd:enumeration value="LAST-STIMULUS-LAST-RESPONSE"/>
      <xsd:enumeration value="NO-SAMPLING-EFFECTS"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LIMIT-KIND">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NONE"/>
      <xsd:enumeration value="MIN"/>
      <xsd:enumeration value="MAX"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LIN-CHECKSUM-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CLASSIC"/>
      <xsd:enumeration value="ENHANCED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LIST-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NUMBER"/>
      <xsd:enumeration value="UNNUMBER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MAX-COMM-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NONE"/>
      <xsd:enumeration value="SILENT"/>
      <xsd:enumeration value="FULL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MEMORY-ACCESS-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="READ"/>
      <xsd:enumeration value="WRITE"/>
      <xsd:enumeration value="ERASE"/>
      <xsd:enumeration value="PROGRAM"/>
      <xsd:enumeration value="RANDOM"/>
      <xsd:enumeration value="SEQUENCE"/>
      <xsd:enumeration value="BURST"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MEMORY-MAPPED-HW-PORT-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UNSPECIFIED"/>
      <xsd:enumeration value="DATA"/>
      <xsd:enumeration value="CONTROL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MEMORY-SECTION-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CODE"/>
      <xsd:enumeration value="CALIBRATION-ONLINE"/>
      <xsd:enumeration value="VAR-NO-INIT"/>
      <xsd:enumeration value="VAR-POWER-ON-INIT"/>
      <xsd:enumeration value="VAR-FAST"/>
      <xsd:enumeration value="VAR"/>
      <xsd:enumeration value="CONST"/>
      <xsd:enumeration value="CONFIG-DATA"/>
      <xsd:enumeration value="USER-DEFINED"/>
      <xsd:enumeration value="CALIBRATION-OFFLINE"/>
      <xsd:enumeration value="CALIBRATION-VARIABLES"/>
      <xsd:enumeration value="EXCLUDE-FROM-FLASH"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MEMORY-SEGMENT-USAGE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CODE"/>
      <xsd:enumeration value="DATA"/>
      <xsd:enumeration value="STACK"/>
      <xsd:enumeration value="BOOT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MODE-ACTIVATION-KIND">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="ENTRY"/>
      <xsd:enumeration value="EXIT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MODIFICATION-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CONTENT-RELATED"/>
      <xsd:enumeration value="DOC-RELATED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MONOTONY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="INCREASING"/>
      <xsd:enumeration value="DECREASING"/>
      <xsd:enumeration value="STRICTLY-INCREASING"/>
      <xsd:enumeration value="STRICTLY-DECREASING"/>
      <xsd:enumeration value="NO-MONOTONY"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NOTE-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CAUTION"/>
      <xsd:enumeration value="EXERCISE"/>
      <xsd:enumeration value="HINT"/>
      <xsd:enumeration value="INSTRUCTION"/>
      <xsd:enumeration value="OTHER"/>
      <xsd:enumeration value="TIP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NUMERICAL-VALUE">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
  <xsd:simpleType name="NV-BLOCK-NEEDS-RELIABILITY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LOW"/>
      <xsd:enumeration value="MEDIUM"/>
      <xsd:enumeration value="HIGH"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NV-BLOCK-NEEDS-WRITING-PRIORITY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LOW"/>
      <xsd:enumeration value="MEDIUM"/>
      <xsd:enumeration value="HIGH"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="OBD-RATIO-CONNECTION-KIND">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="API-USE"/>
      <xsd:enumeration value="OBSERVER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ORIENT-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="LAND"/>
      <xsd:enumeration value="PORT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="OSCILLATOR-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FUNDAMENTAL"/>
      <xsd:enumeration value="OVERTONE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PGWIDE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-PGWIDE"/>
      <xsd:enumeration value="PGWIDE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="POSITIVE-INTEGER">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[1-9][0-9]*|0x[0-9a-f]*|0[0-7]*|0b[0-1]*"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PROCESSING-KIND">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NONE"/>
      <xsd:enumeration value="RAW"/>
      <xsd:enumeration value="FILTERED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PROCESSING-UNIT-ADRESSING-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DIRECT"/>
      <xsd:enumeration value="INDIRECT"/>
      <xsd:enumeration value="INDEXED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PROCESSING-UNIT-ARCHITECTURE-KIND-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="HARVARD"/>
      <xsd:enumeration value="NEUMANN"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PROCESSING-UNIT-ARCHITECTURE-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RISC"/>
      <xsd:enumeration value="CISC"/>
      <xsd:enumeration value="SIMD"/>
      <xsd:enumeration value="MIND"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PROCESSING-UNIT-SPECIAL-OPCODES-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BIT-MANIPULATION"/>
      <xsd:enumeration value="MUL"/>
      <xsd:enumeration value="DIV"/>
      <xsd:enumeration value="FLOAT"/>
      <xsd:enumeration value="MAC"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PROGRAMMINGLANGUAGE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="C"/>
      <xsd:enumeration value="CPP"/>
      <xsd:enumeration value="JAVA"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PULSE-TEST-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DISABLE"/>
      <xsd:enumeration value="ENABLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PWD-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TWO-PHASE-INPUT"/>
      <xsd:enumeration value="THREE-PHASE-INPUT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="REAL-TYPE-ENCODING-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SINGLE"/>
      <xsd:enumeration value="DOUBLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="REF">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="/?[a-zA-Z][a-zA-Z0-9_]{0,127}(/[a-zA-Z][a-zA-Z0-9_]{0,127})*"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="REGISTER-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DATA"/>
      <xsd:enumeration value="ADDRESS"/>
      <xsd:enumeration value="CONTROL"/>
      <xsd:enumeration value="STATUS"/>
      <xsd:enumeration value="STACK-POINTER"/>
      <xsd:enumeration value="SPECIAL"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RESUME-POSITION">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="START-FROM-BEGINNING"/>
      <xsd:enumeration value="CONTINUE-AT-IT-POSITION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RUN-MODE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RUN-CONTINUOUS"/>
      <xsd:enumeration value="RUN-ONCE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SCALE-CONSTR-VALIDITY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="VALID"/>
      <xsd:enumeration value="NOT-AVAILABLE"/>
      <xsd:enumeration value="NOT-DEFINED"/>
      <xsd:enumeration value="NOT-VALID"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SENSOR-HW-SIGNAL-QUALITY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RAW"/>
      <xsd:enumeration value="FILTERED"/>
      <xsd:enumeration value="DEBOUNCED"/>
      <xsd:enumeration value="CODED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-CONTENT-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-CONTENT"/>
      <xsd:enumeration value="SHOW-CONTENT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-RESOURCE-LONG-NAME-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-LONG-NAME"/>
      <xsd:enumeration value="SHOW-LONG-NAME"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-RESOURCE-NUMBER-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-NUMBER"/>
      <xsd:enumeration value="SHOW-NUMBER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-RESOURCE-PAGE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-PAGE"/>
      <xsd:enumeration value="SHOW-PAGE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-RESOURCE-SHORT-NAME-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-SHORT-NAME"/>
      <xsd:enumeration value="SHOW-SHORT-NAME"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-RESOURCE-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-TYPE"/>
      <xsd:enumeration value="SHOW-TYPE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SHOW-SEE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-SHOW-SEE"/>
      <xsd:enumeration value="SHOW-SEE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SIGNAL-FAN-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NFOLD"/>
      <xsd:enumeration value="SINGLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SUBSCRIPT">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
  <xsd:simpleType name="SUPSCRIPT">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
  <xsd:simpleType name="SW-CALIBRATION-ACCESS-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="READ-ONLY"/>
      <xsd:enumeration value="NOT-ACCESSIBLE"/>
      <xsd:enumeration value="READ-WRITE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SW-IMPL-POLICY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FIXED"/>
      <xsd:enumeration value="MEASUREMENT-POINT"/>
      <xsd:enumeration value="STANDARD"/>
      <xsd:enumeration value="QUEUED"/>
      <xsd:enumeration value="CONST"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SW-SERVICE-IMPL-POLICY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="STANDARD"/>
      <xsd:enumeration value="INLINE"/>
      <xsd:enumeration value="MACRO"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SW-SERVICE-REENTRANCE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="REENTRANCE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SW-VARIABLE-ACCESS-IMPL-POLICY-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="OPTIMIZED"/>
      <xsd:enumeration value="SELECTABLE"/>
      <xsd:enumeration value="DIRECT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SWC-TO-ECU-MAPPING-CONSTRAINT-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DEDICATED"/>
      <xsd:enumeration value="EXCLUSIVE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SWC-TO-SWC-OPERATION-ARGUMENTS-DIRECTION-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="IN"/>
      <xsd:enumeration value="OUT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SYNCHRONIZATION-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="STIMULUS-SYNCHRONIZATION"/>
      <xsd:enumeration value="RESPONSE-SYNCHRONIZATION"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-BSW-BEHAVIOR-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-MODULE-ENTITY-ACTIVATED"/>
      <xsd:enumeration value="BSW-MODULE-ENTITY-TERMINATED"/>
      <xsd:enumeration value="BSW-MODULE-ENTITY-STARTED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-BSW-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BSW-M-ENTRY-CALLED"/>
      <xsd:enumeration value="BSW-M-ENTRY-CALL-RETURNED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-DATA-ELEMENT-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DATA-ELEMENT-SENT"/>
      <xsd:enumeration value="DATA-ELEMENT-RECEIVED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-FRAME-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FRAME-QUEUED-FOR-TRANSMISSION"/>
      <xsd:enumeration value="FRAME-TRANSMITTED-ON-BUS"/>
      <xsd:enumeration value="FRAME-RECEIVED-BY-IF"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-I-PDU-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-PDU-SENT-TO-IF"/>
      <xsd:enumeration value="I-PDU-RECEIVED-BY-COM"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-I-SIGNAL-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="I-SIGNAL-SENT-TO-COM"/>
      <xsd:enumeration value="I-SIGNAL-AVAILABLE-FOR-RTE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-INTERNAL-BEHAVIOR-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="RUNNABLE-ENTITY-STARTED"/>
      <xsd:enumeration value="RUNNABLE-ENTITY-TERMINATED"/>
      <xsd:enumeration value="RUNNABLE-ENTITY-ACTIVATED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TD-EVENT-OPERATION-TYPE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="OPERATION-CALLED"/>
      <xsd:enumeration value="OPERATION-CALL-RECEIVED"/>
      <xsd:enumeration value="OPERATION-CALL-RESPONSE-SENT"/>
      <xsd:enumeration value="OPERATION-CALL-RESPONSE-RECEIVED"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TIMER-COUNT-DIRECTION-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UP"/>
      <xsd:enumeration value="DOWN"/>
      <xsd:enumeration value="SELECTABLE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TIMER-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="CONTINUOUS"/>
      <xsd:enumeration value="SINGLE"/>
      <xsd:enumeration value="FREE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TP-ACK-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NO-ACK"/>
      <xsd:enumeration value="ACK-WITH-RT"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TRANSPORT-PROTOCOL-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="UDP"/>
      <xsd:enumeration value="TCP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TTCAN-TRIGGER-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TX-REF-TRIGGER"/>
      <xsd:enumeration value="TX-REF-TRIGGER-GAP"/>
      <xsd:enumeration value="TX-TRIGGER-SINGLE"/>
      <xsd:enumeration value="TX-TRIGGER-MERGED"/>
      <xsd:enumeration value="WATCH-TRIGGER"/>
      <xsd:enumeration value="WATCH-TRIGGER-GAP"/>
      <xsd:enumeration value="RX-TRIGGER"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="VALIGN-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BOTTOM"/>
      <xsd:enumeration value="MIDDLE"/>
      <xsd:enumeration value="TOP"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="WATCH-DOG-MODE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NORMAL"/>
      <xsd:enumeration value="WINDOWED"/>
      <xsd:enumeration value="DEBUG"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="XMLSPACE-ENUM">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PRESERVE"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="COMMUNICATION-DIRECTION-TYPE">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="IN"/>
      <xsd:enumeration value="OUT"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
